{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "49085ebdf517e721",
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "source": [
    "### 经典又兼具备趣味性的Kaggle案例[泰坦尼克号问题](https://www.kaggle.com/c/titanic)\n",
    "大家都熟悉的『Jack and Rose』的故事，豪华游艇倒了，大家都惊恐逃生，可是救生艇的数量有限，无法人人都有，副船长发话了『lady and kid first！』，所以是否获救其实并非随机，而是基于一些背景有rank先后的。<br>\n",
    "训练和测试数据是一些乘客的个人信息以及存活状况，要尝试根据它生成合适的模型并预测其他人的存活状况。<br>\n",
    "对，这是一个二分类问题，很多分类算法都可以解决。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "5f8c259a883dfcd0",
   "metadata": {
    "collapsed": false,
    "is_executing": true,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from pandas import Series, DataFrame\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "e5cc93801a20a4e9",
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',\n",
       "       'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_train = pd.read_csv('data/Train.csv')\n",
    "data_train.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "388abfd0-ef8b-4cb7-b783-d9e31a77e27c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 891 entries, 0 to 890\n",
      "Data columns (total 12 columns):\n",
      " #   Column       Non-Null Count  Dtype  \n",
      "---  ------       --------------  -----  \n",
      " 0   PassengerId  891 non-null    int64  \n",
      " 1   Survived     891 non-null    int64  \n",
      " 2   Pclass       891 non-null    int64  \n",
      " 3   Name         891 non-null    object \n",
      " 4   Sex          891 non-null    object \n",
      " 5   Age          714 non-null    float64\n",
      " 6   SibSp        891 non-null    int64  \n",
      " 7   Parch        891 non-null    int64  \n",
      " 8   Ticket       891 non-null    object \n",
      " 9   Fare         891 non-null    float64\n",
      " 10  Cabin        204 non-null    object \n",
      " 11  Embarked     889 non-null    object \n",
      "dtypes: float64(2), int64(5), object(5)\n",
      "memory usage: 83.7+ KB\n"
     ]
    }
   ],
   "source": [
    "data_train.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "242df8cc-0b48-4d73-8687-a2a327b885f9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>714.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>446.000000</td>\n",
       "      <td>0.383838</td>\n",
       "      <td>2.308642</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>0.523008</td>\n",
       "      <td>0.381594</td>\n",
       "      <td>32.204208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>257.353842</td>\n",
       "      <td>0.486592</td>\n",
       "      <td>0.836071</td>\n",
       "      <td>14.526497</td>\n",
       "      <td>1.102743</td>\n",
       "      <td>0.806057</td>\n",
       "      <td>49.693429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.420000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>223.500000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>20.125000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>7.910400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>446.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>28.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>14.454200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>668.500000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>31.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>891.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>8.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>512.329200</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       PassengerId    Survived      Pclass         Age       SibSp  \\\n",
       "count   891.000000  891.000000  891.000000  714.000000  891.000000   \n",
       "mean    446.000000    0.383838    2.308642   29.699118    0.523008   \n",
       "std     257.353842    0.486592    0.836071   14.526497    1.102743   \n",
       "min       1.000000    0.000000    1.000000    0.420000    0.000000   \n",
       "25%     223.500000    0.000000    2.000000   20.125000    0.000000   \n",
       "50%     446.000000    0.000000    3.000000   28.000000    0.000000   \n",
       "75%     668.500000    1.000000    3.000000   38.000000    1.000000   \n",
       "max     891.000000    1.000000    3.000000   80.000000    8.000000   \n",
       "\n",
       "            Parch        Fare  \n",
       "count  891.000000  891.000000  \n",
       "mean     0.381594   32.204208  \n",
       "std      0.806057   49.693429  \n",
       "min      0.000000    0.000000  \n",
       "25%      0.000000    7.910400  \n",
       "50%      0.000000   14.454200  \n",
       "75%      0.000000   31.000000  \n",
       "max      6.000000  512.329200  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_train.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "97af1738-4f86-4976-a36e-0782947820f7",
   "metadata": {},
   "source": [
    "# y=f(x) 那些东西是有效的特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "ccc3a4e3-43fe-426d-b892-624debfb3e85",
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "keyword grid_b is not recognized; valid keywords are ['size', 'width', 'color', 'tickdir', 'pad', 'labelsize', 'labelcolor', 'labelfontfamily', 'zorder', 'gridOn', 'tick1On', 'tick2On', 'label1On', 'label2On', 'length', 'direction', 'left', 'bottom', 'right', 'top', 'labelleft', 'labelbottom', 'labelright', 'labeltop', 'labelrotation', 'grid_agg_filter', 'grid_alpha', 'grid_animated', 'grid_antialiased', 'grid_clip_box', 'grid_clip_on', 'grid_clip_path', 'grid_color', 'grid_dash_capstyle', 'grid_dash_joinstyle', 'grid_dashes', 'grid_data', 'grid_drawstyle', 'grid_figure', 'grid_fillstyle', 'grid_gapcolor', 'grid_gid', 'grid_in_layout', 'grid_label', 'grid_linestyle', 'grid_linewidth', 'grid_marker', 'grid_markeredgecolor', 'grid_markeredgewidth', 'grid_markerfacecolor', 'grid_markerfacecoloralt', 'grid_markersize', 'grid_markevery', 'grid_mouseover', 'grid_path_effects', 'grid_picker', 'grid_pickradius', 'grid_rasterized', 'grid_sketch_params', 'grid_snap', 'grid_solid_capstyle', 'grid_solid_joinstyle', 'grid_transform', 'grid_url', 'grid_visible', 'grid_xdata', 'grid_ydata', 'grid_zorder', 'grid_aa', 'grid_c', 'grid_ds', 'grid_ls', 'grid_lw', 'grid_mec', 'grid_mew', 'grid_mfc', 'grid_mfcalt', 'grid_ms']",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[5], line 17\u001b[0m\n\u001b[0;32m     15\u001b[0m plt\u001b[38;5;241m.\u001b[39mscatter(data_train\u001b[38;5;241m.\u001b[39mSurvived, data_train\u001b[38;5;241m.\u001b[39mAge)\n\u001b[0;32m     16\u001b[0m plt\u001b[38;5;241m.\u001b[39mylabel(\u001b[38;5;124mu\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m年龄\u001b[39m\u001b[38;5;124m\"\u001b[39m)                         \u001b[38;5;66;03m# sets the y axis lable\u001b[39;00m\n\u001b[1;32m---> 17\u001b[0m plt\u001b[38;5;241m.\u001b[39mgrid(b\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m, which\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmajor\u001b[39m\u001b[38;5;124m'\u001b[39m, axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m'\u001b[39m) \u001b[38;5;66;03m# formats the grid line style of our graphs\u001b[39;00m\n\u001b[0;32m     18\u001b[0m plt\u001b[38;5;241m.\u001b[39mtitle(\u001b[38;5;124mu\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m按年龄看获救分布 (1为获救)\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m     21\u001b[0m plt\u001b[38;5;241m.\u001b[39msubplot2grid((\u001b[38;5;241m2\u001b[39m,\u001b[38;5;241m3\u001b[39m),(\u001b[38;5;241m1\u001b[39m,\u001b[38;5;241m0\u001b[39m), colspan\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m)\n",
      "File \u001b[1;32mC:\\ProgramData\\anaconda3\\Lib\\site-packages\\matplotlib\\pyplot.py:3144\u001b[0m, in \u001b[0;36mgrid\u001b[1;34m(visible, which, axis, **kwargs)\u001b[0m\n\u001b[0;32m   3137\u001b[0m \u001b[38;5;129m@_copy_docstring_and_deprecators\u001b[39m(Axes\u001b[38;5;241m.\u001b[39mgrid)\n\u001b[0;32m   3138\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mgrid\u001b[39m(\n\u001b[0;32m   3139\u001b[0m     visible: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m   (...)\u001b[0m\n\u001b[0;32m   3142\u001b[0m     \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[0;32m   3143\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m-> 3144\u001b[0m     gca()\u001b[38;5;241m.\u001b[39mgrid(visible\u001b[38;5;241m=\u001b[39mvisible, which\u001b[38;5;241m=\u001b[39mwhich, axis\u001b[38;5;241m=\u001b[39maxis, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n",
      "File \u001b[1;32mC:\\ProgramData\\anaconda3\\Lib\\site-packages\\matplotlib\\axes\\_base.py:3198\u001b[0m, in \u001b[0;36m_AxesBase.grid\u001b[1;34m(self, visible, which, axis, **kwargs)\u001b[0m\n\u001b[0;32m   3196\u001b[0m     \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mxaxis\u001b[38;5;241m.\u001b[39mgrid(visible, which\u001b[38;5;241m=\u001b[39mwhich, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m   3197\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m axis \u001b[38;5;129;01min\u001b[39;00m [\u001b[38;5;124m'\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mboth\u001b[39m\u001b[38;5;124m'\u001b[39m]:\n\u001b[1;32m-> 3198\u001b[0m     \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39myaxis\u001b[38;5;241m.\u001b[39mgrid(visible, which\u001b[38;5;241m=\u001b[39mwhich, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n",
      "File \u001b[1;32mC:\\ProgramData\\anaconda3\\Lib\\site-packages\\matplotlib\\axis.py:1697\u001b[0m, in \u001b[0;36mAxis.grid\u001b[1;34m(self, visible, which, **kwargs)\u001b[0m\n\u001b[0;32m   1694\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m which \u001b[38;5;129;01min\u001b[39;00m [\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmajor\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mboth\u001b[39m\u001b[38;5;124m'\u001b[39m]:\n\u001b[0;32m   1695\u001b[0m     gridkw[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mgridOn\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m (\u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_major_tick_kw[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mgridOn\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m   1696\u001b[0m                         \u001b[38;5;28;01mif\u001b[39;00m visible \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m visible)\n\u001b[1;32m-> 1697\u001b[0m     \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_tick_params(which\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmajor\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mgridkw)\n\u001b[0;32m   1698\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstale \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n",
      "File \u001b[1;32mC:\\ProgramData\\anaconda3\\Lib\\site-packages\\matplotlib\\axis.py:958\u001b[0m, in \u001b[0;36mAxis.set_tick_params\u001b[1;34m(self, which, reset, **kwargs)\u001b[0m\n\u001b[0;32m    945\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m    946\u001b[0m \u001b[38;5;124;03mSet appearance parameters for ticks, ticklabels, and gridlines.\u001b[39;00m\n\u001b[0;32m    947\u001b[0m \n\u001b[1;32m   (...)\u001b[0m\n\u001b[0;32m    955\u001b[0m \u001b[38;5;124;03m    gridlines.\u001b[39;00m\n\u001b[0;32m    956\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m    957\u001b[0m _api\u001b[38;5;241m.\u001b[39mcheck_in_list([\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmajor\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mminor\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mboth\u001b[39m\u001b[38;5;124m'\u001b[39m], which\u001b[38;5;241m=\u001b[39mwhich)\n\u001b[1;32m--> 958\u001b[0m kwtrans \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_translate_tick_params(kwargs)\n\u001b[0;32m    960\u001b[0m \u001b[38;5;66;03m# the kwargs are stored in self._major/minor_tick_kw so that any\u001b[39;00m\n\u001b[0;32m    961\u001b[0m \u001b[38;5;66;03m# future new ticks will automatically get them\u001b[39;00m\n\u001b[0;32m    962\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m reset:\n",
      "File \u001b[1;32mC:\\ProgramData\\anaconda3\\Lib\\site-packages\\matplotlib\\axis.py:1102\u001b[0m, in \u001b[0;36mAxis._translate_tick_params\u001b[1;34m(kw, reverse)\u001b[0m\n\u001b[0;32m   1100\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key \u001b[38;5;129;01min\u001b[39;00m kw_:\n\u001b[0;32m   1101\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m key \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m allowed_keys:\n\u001b[1;32m-> 1102\u001b[0m         \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[0;32m   1103\u001b[0m             \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mkeyword \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m is not recognized; valid keywords are \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m   1104\u001b[0m             \u001b[38;5;241m%\u001b[39m (key, allowed_keys))\n\u001b[0;32m   1105\u001b[0m kwtrans\u001b[38;5;241m.\u001b[39mupdate(kw_)\n\u001b[0;32m   1106\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m kwtrans\n",
      "\u001b[1;31mValueError\u001b[0m: keyword grid_b is not recognized; valid keywords are ['size', 'width', 'color', 'tickdir', 'pad', 'labelsize', 'labelcolor', 'labelfontfamily', 'zorder', 'gridOn', 'tick1On', 'tick2On', 'label1On', 'label2On', 'length', 'direction', 'left', 'bottom', 'right', 'top', 'labelleft', 'labelbottom', 'labelright', 'labeltop', 'labelrotation', 'grid_agg_filter', 'grid_alpha', 'grid_animated', 'grid_antialiased', 'grid_clip_box', 'grid_clip_on', 'grid_clip_path', 'grid_color', 'grid_dash_capstyle', 'grid_dash_joinstyle', 'grid_dashes', 'grid_data', 'grid_drawstyle', 'grid_figure', 'grid_fillstyle', 'grid_gapcolor', 'grid_gid', 'grid_in_layout', 'grid_label', 'grid_linestyle', 'grid_linewidth', 'grid_marker', 'grid_markeredgecolor', 'grid_markeredgewidth', 'grid_markerfacecolor', 'grid_markerfacecoloralt', 'grid_markersize', 'grid_markevery', 'grid_mouseover', 'grid_path_effects', 'grid_picker', 'grid_pickradius', 'grid_rasterized', 'grid_sketch_params', 'grid_snap', 'grid_solid_capstyle', 'grid_solid_joinstyle', 'grid_transform', 'grid_url', 'grid_visible', 'grid_xdata', 'grid_ydata', 'grid_zorder', 'grid_aa', 'grid_c', 'grid_ds', 'grid_ls', 'grid_lw', 'grid_mec', 'grid_mew', 'grid_mfc', 'grid_mfcalt', 'grid_ms']"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "fig.set(alpha=0.2)  # 设定图表颜色alpha参数\n",
    "\n",
    "plt.subplot2grid((2,3),(0,0))             # 在一张大图里分列几个小图\n",
    "data_train.Survived.value_counts().plot(kind='bar')# plots a bar graph of those who surived vs those who did not. \n",
    "plt.title(u\"获救情况 (1为获救)\") # puts a title on our graph\n",
    "plt.ylabel(u\"人数\")  \n",
    "\n",
    "plt.subplot2grid((2,3),(0,1))\n",
    "data_train.Pclass.value_counts().plot(kind=\"bar\")\n",
    "plt.ylabel(u\"人数\")\n",
    "plt.title(u\"乘客等级分布\")\n",
    "\n",
    "plt.subplot2grid((2,3),(0,2))\n",
    "plt.scatter(data_train.Survived, data_train.Age)\n",
    "plt.ylabel(u\"年龄\")                         # sets the y axis lable\n",
    "plt.grid(b=True, which='major', axis='y') # formats the grid line style of our graphs\n",
    "plt.title(u\"按年龄看获救分布 (1为获救)\")\n",
    "\n",
    "\n",
    "plt.subplot2grid((2,3),(1,0), colspan=2)\n",
    "data_train.Age[data_train.Pclass == 1].plot(kind='kde')   # plots a kernel desnsity estimate of the subset of the 1st class passanges's age\n",
    "data_train.Age[data_train.Pclass == 2].plot(kind='kde')\n",
    "data_train.Age[data_train.Pclass == 3].plot(kind='kde')\n",
    "plt.xlabel(u\"年龄\")# plots an axis lable\n",
    "plt.ylabel(u\"密度\") \n",
    "plt.title(u\"各等级的乘客年龄分布\")\n",
    "plt.legend((u'头等舱', u'2等舱',u'3等舱'),loc='best') # sets our legend for our graph.\n",
    "\n",
    "\n",
    "plt.subplot2grid((2,3),(1,2))\n",
    "data_train.Embarked.value_counts().plot(kind='bar')\n",
    "plt.title(u\"各登船口岸上船人数\")\n",
    "plt.ylabel(u\"人数\")  \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "55571ea4-06e2-40e8-82f2-7318b669ce01",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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bdq4F39/fzNr1iyP8+zYscP979dee81jffv27ebTTz91/87+afPmzeaiiy4yzZs3N02aNDGSTKtWrUyLFi3MxRdfbDZs2GAaNmxYZp27d+82xhgzfPhw8/TTT5uGDRuaUaNGmerVq5vvv//e+Pr6mmrVqpXqoTneI/ZPv/zyi7nlllvM4cOHzeLFi82J/u++f//+pmPHjmW2AVZCoAGqgFGjRpnw8HD3H/m5c+ea6tWrm9WrV5s2bdqY6667zrhcrpOe5/PPPzc///yzMcaY+++/34wePdq9/fvvvzfGGFNQUHDC47/99lsTEBBQ7u2Vv/76q8xj3333XSPJ+Pn5GYfDYRwOh7Hb7cZms7nXHQ6H+4/8373wwgvGZrOZO++808THx5vw8HDz6quvumtq1KiRe9+uXbt63F45btWqVaX+aPfv398MHDjQzJo1y1SrVq3UbZ4GDRqY+fPnu9f3799vqlevbp544gnz/vvvm6CgILN9+3Z3+9SpU03dunVNTk6OadWqlVm3bl2pOoqKiowx/731ZYwx+fn5xhhjPvjgA2O3201GRoYpLCw0CQkJpkePHiY3N9cdkK655hozZcoU07BhQ7Nw4ULTrl07M378eDN//nyzaNEis3jxYnPDDTeYzp07m8WLF5vFixebhQsXmrlz55rCwsIyfzfHbzmVpX///qZ9+/ZltgFWwqBgoAoYNmyY/v3vf6thw4aSpDvuuEM9evRQx44dlZeXp8WLF3vcjvi73377zT1odty4cdq4cWOpfSZOnKhNmzZp6dKlaty4cZn7rFy5Ul26dFF+fr5GjRqloqIimWP/0aPJkyfL399fc+bMUc2aNcusY+DAgSouLlZBQYHy8/OVn5+v5557Tpdffrl7PT8/XyUlJdq0aZPHsb169dLo0aN1zz33KCsrS02bNtUzzzwj6ditpLy8PBljlJubq2+++UZPPfWUbDabxo8f7z7HiW6buFwuPf3003rqqadUq1Ytj7bCwkKPW3W1a9fWunXr9N577+mRRx7R/Pnz1aRJE3e7v7+/fH19Vb16dV177bW68847dfDgQXd7WlqaGjVq5DGQWJKGDh2qu+++WyNHjlS1atVUt25d+fr6at++fWrWrJmqVasmHx8fHT16VElJSerQoYMkycfHR+vWrVO9evW0f/9+/fHHH9q/f7969+6tO+64Q/v373dv37dv3wmfEDs+FUBubm6ppaioiKkCcE5gDA1QBdSqVUsdO3aUdOxx6fHjx+uzzz7TTTfdpJUrV6p37956+OGH1blzZ49xJ5LUpk0bHT16VAEBATpy5Ij8/PxKnd/f318vvfSSSkpK9OSTT6p169Ye7T/88INuuukm3X777XrmmWd0zz33aPXq1Ro/frxWrFihCRMmaP78+e4a/27//v06evRomT83OztbhYWFysjIKNVWUFAgm82mmJgYtW7dWq1bt9Z//vMf/fLLL9qyZYs7oPz111/av3+/Fi9erO7duyszM1MFBQWKiooqNY6mLIGBgUpMTFRYWJh69eqluXPnumstKChwj5eRpEOHDikhIUHVq1dXZmamGjZsqJycHLlcLjkcDhUWFsrX11e5ubl6/vnn5XK5lJeXpxo1akiSoqOjdeWVV+q+++5zP2X16quvaubMmXr++ee1evVq+fr66scff1Tr1q31888/u8fnSMfG4AwePFjNmjXzuIa+ffuqefPmHk+Q/d3w4cM9wt1xBw4cUI0aNeRyuSRJwcHBZR7fpk2bk36OQJXn3Q4iAMYYk5mZad5//31z4403Grvdbnr27Gl++OEHY8yxcRv9+vUz/v7+Jjg42HTq1MkMHz7cLFmyxBhjzJEjR4wxx251XHnlleajjz4yxhjTpUsX8/DDDxtjjOnYsaN58sknjcvlMkeOHDGLFi0qdetp3bp1pqSkxBhjTG5uromLi3PfanrvvfdOWPsDDzxgAgMDTUhIiPtJpLKWatWqGUkmODjYhISEmICAAI+nnLZs2WIiIiLMsmXLTGFhocnIyDDGHBvHEhQUZFq0aOG+LbN8+XITHh7uMY5l7dq1Zd4mu//++92fcbVq1TyupXr16mb9+vXGGGMOHz5s6tevb+666y6TmZlprr/+ejN8+HAzevTo03rKae/evWbKlClm+fLlRpKx2+3m7rvvdv+ubrvtNvP666+boqIiExoaan766acyP9eGDRuaxYsXu9dbtWplPvjgg1L73XbbbeZf//pXmefo0qWL+/qNMaZv377mwQcfNMYc+068/PLLZR4HWBG3nAAvyszM1BVXXKHIyEiNHj1atWvX1ldffaXJkyerRo0a7qd0Xn31VW3evFnPP/+8atWqpcTERFWvXl2FhYXavHmzHn/8cTVo0MB9K+fTTz/VsmXLNH36dK1du1Z2u112u12HDh3SihUr1KNHj1KTz7Vs2VKrV6/WyJEj1aJFC+3cuVNDhgxRx44d9cADDygmJkaDBg3SW2+9peXLl+vHH3/U0aNHNX36dOXl5cnpdOrw4cMnXL744gtJ0o8//iin06mjR48qOTlZ0rGnuK677joVFBTokUceUWBgoIYPHy7p2FNNI0eOVG5urt59911J0pw5c9StWzf30zt/l56e7l7uuOMO9/YaNWro3nvv1fjx4923Zo73vEhSaGiotm7dqk8//VRbt27Vt99+q5UrV2rUqFHKy8tTcXGx7rvvPvn4+OjPP/+UMUYlJSUeT0xJx25bHT16VLfccoskacqUKZozZ44++OADBQUF6cYbb9T8+fO1bt06+fv7l+qNOZGyrvW4snrHlixZouXLl+v+++93b9u3b5+7Nwk453g7UQHnu1mzZpnvvvvOlJSUGB8fn3J7A+rWrWuM+e/A04MHD5rIyEhzyy23mIULF5prr73WPPfccyY8PNyEhoaaRo0amXr16pmnnnrKREZGmtDQUBMWFmYef/xxY8yxAcK33Xabady4sfHx8TEhISHmtttuMx999JFxOp3uJ5t++eUXk5CQYK6//np3T4vD4XAPEM7JyTHbt283u3fvNunp6WUuc+fONZLMt99+a9LS0syuXbvcn0FmZqbp3bu3GT9+vPnqq69MRkaGKSkpMbm5uaZatWomJSXFfP755yY8PNysX7/e+Pn5lRqQe7yH5u/69+/v0UOxZcsWI8ls3LjRFBUVGUkmNTXV45hPPvnE1KxZ00yfPt1Ur17dvT0/P99ERkaaWrVqmddff73M3+WaNWvM5Zdfbho0aGD+7//+z13Ps88+a+x2u1m4cKHJzs42wcHBJjY21t1bUpZ/9tC0adPG+Pr6egywdjgcxsfHxz34+++1XnjhhaZ///7ubXl5eSY4ONjMmTPHGEMPDc49jKEBvOzuu+92/9vf31+fffaZunfvXmq/xMREjRkzRtJ/B8BGRERo165dqlatmiQpJiZGN9xwgzp16qSQkBA1aNBAv/32mxITE7Vo0SJdffXVHuf08/PTRRddpAYNGuj2229XQkKC5s2bp3nz5p2w3h49eighIUG//PKLe4Dw6tWrddttt8nhcMhms5V53PHp/2+88UYVFRWpYcOG7un7a9SoodmzZysnJ0cbNmzQlClT3Nd0xRVXqFmzZmrWrJlmzpyp6667Ttddd91pz6YsSZdffrk2bNigq666StnZ2ZKkkJAQScd6yx555BF9++23WrJkiQICAjzmmJkxY4YcDoemTJmiAQMG6N577/Xo7SguLtbLL7/s7mXbu3evu+2VV15RXl6eGjZsqODgYMXHx2vWrFlKSEg4rfrfffddDRgwwGPb7bffXmq/l19+WQcOHNC4cePc2xITE1VcXKyuXbuWee78/PxScxkBVsItJ6AKKevWwd+V9STP8T/8M2bMUFxcnG688UZ98skn7vYPPvhA3bp10zXXXKPHHntMWVlZHscnJCTojTfe0DXXXKPAwED179/f/XTTP5f+/furRo0aatq0qXr16uU+R7du3dwT23Xt2lULFy484S2nlJQU5efne7yLaN68eWratKnCwsI0ePBgHTx4UCEhIRo3bpxeffVVSccm/ouJiVFBQYFq1qxZ6v1Ix/399Qh5eXml2tu2bSvp2ABg6b+BpkaNGrr66qu1detWxcbGavv27apbt66kY++AGjNmjMaMGaPu3bvriiuuUM+ePT3eW2W32zVv3jx98cUXCg8PL/XE0aRJk9SqVSslJiZq3rx5iomJ0eOPP+6egO9U3H///fL19fVY5s+f77FPUlKSxo8fr9GjR6tOnTqSjt3mGzlypIYPH+6+3n9q0qSJ+5YeYEUEGqCKOXjwYKn3FmVkZCgrK6vMx3I3btyorl276rHHHtPLL7+sjz/+WH5+fiopKVFJSYl8fX2VmJioyZMna+bMmYqKitKgQYP066+/nlF9J+qBkY4Fsnr16umuu+7y6KGQyn+L+NVXX63+/fvrxx9/1K5duzR48GCNGzdOTz75pNq1a6e0tDTddNNNWrBggebPn6/169erc+fOHk/9HH/xZVRUlHv57LPPTvhCzJ9++kl+fn7u2XNtNpuGDRumyMhIHT58WP/v//0/devWTfv371d8fLzatGmjAQMGyGaz6cMPP1RGRoY6derkEUiCg4Plcrk0cuRIDR06VJGRke621atXq0uXLho0aJAmT56srVu3Kjw8XC1atNC4cePcPUZ/v56//76NMZoxY4aKioo8ln/22BhjdNttt2no0KEqKirS9OnTdc011yg2NlYvvPCCez9fX19t2rRJ27dv15IlS5Senu4x2zBgOd650wWgLMcn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+vjjjyVJc+bMUYMGDTRnzhx9+eWXmjFjhjIyMjR16lS1bdtWq1at0s8//6wHHnjglOf5AQDA27w+KPif6tevr/r165922/nIx8dHdrtdGRkZGjNmjKKiopSfny+HwyFfX18FBATonXfe0WOPPabs7GyFhISob9++6tWrl+rWraujR49q6tSpmjhxojIyMnTVVVdJOnZb6tJLL5WPD+8uBVAFvRjq7QrOHS86vV1BheEvlkUVFBSoU6dOatOmjRYsWKBp06Zp4cKFaty4sS688EKtX79eAwYM0GWXXaY1a9boX//6l6RjPTcbNmxQSUmJPvvsM7300ktavXq1Fi9erD179ig3N1dbtmxRs2bNvHyFAACcuirXQ4NT4+/vr++++06HDx9WfHy8MjMz1b59e+3du1dOp1M1a9bUwIEDS93au/jii9WrVy8NHTpUnTt31o4dO/Txxx/rX//6lzp27KglS5ZoyZIlevvtt710ZQAAnD56aCxs06ZN6tixo5588kk1b95c+/btkyTNnj1b1113nWbPni2n87/dicnJybrhhhs0bdo0DRs2THXq1NGXX36p119/XbNmzdKjjz6qUaNGKSsrS5dddpm3LgsAgNNGoLGo3NxcjR49Wu+//75uvfVWHTx4UNWqVZPT6dRrr72msWPHqlevXnr44YdVUlIi6VivzjXXXKOvv/5ajRo1kiQ1adJEX331lW6++WaFhobqjz/+UFRU1BnNMgwAgLdwy6kc/8vMvWdb9erVtWzZMknSqlWrlJ2drXr16qlXr1669dZbdcUVV6hZs2a6+uqrNWDAAL3zzjtq2rSpxowZo2+//VZr1qxxvyiySZMmev/99/Xiiy/qzTff1KxZs9S5c2dNnjxZzZs39+ZlAgBwSuihsbB9+/apQ4cO6tevnz766CNdd9118vf312uvvSZJCgwM1IoVK5SamqoxY8a4j5s4caJWrFih3r17S5JmzJihN998U5999pkGDRqkL7/8Uq1bt9a9996r/Px8r1wbAACnw2bOg5nTsrOzFRoaKqfTqZCQEI+2/Px87d69WzExMe7J56zkm2++UVxcnBwOh7Zt26YmTZqUmkH56NGj8vPzk69v2R1yBQUFklTq3Vgul6tC3on1d1b/vAFUATy2XXGq+GPb5f39/iduOVncdddd5/5306ZNy9znZK8vKO8lnwAA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AACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5RFoAACA5Xkt0Bw8eFDffvutMjMzvVUCAAA4R3gl0Hz66ae68MIL9eijj+qCCy7Qp59+KklKSUlRbGyswsPDNWLECBlj3MeU1wYAAM5vlR5oDh8+rCFDhmjt2rX6/vvv9c477+iZZ56Ry+VSfHy82rRpo6SkJKWmpioxMVGSym0DAACo9ECTk5OjN954Q82bN5cktWrVSllZWVq6dKmcTqcmTZqkxo0ba+zYsZoxY4YkldsGAADgW9k/MCoqSn379pUkFRYWasKECbr11luVnJystm3bKigoSJLUsmVLpaamSlK5bWVxuVxyuVzu9ezs7LN1OQAAoArw2qDg5ORk1a5dW8uXL9cbb7yh7OxsxcTEuNttNpvsdruysrLKbStLQkKCQkND3UtUVNRZvx4AAOA9Xgs0LVu21MqVK9WsWTMNHDhQvr6+cjgcHvsEBAQoLy+v3LayjBo1Sk6n072kp6eftesAAADe57VAY7PZdNlllykxMVELFy5URESE/vrrL499cnJy5O/vX25bWRwOh0JCQjwWAABw7qr0QPP1119rxIgR7nVf32PDeC655BJt3LjRvT0tLU0ul0sRERGKjY09YRsAAEClB5pLLrlE77zzjqZPn6709HSNHDlSnTt3Vrdu3eR0OjVz5kxJ0rhx49SpUyfZ7XZ16NDhhG0AAAA244UZ6pYtW6Zhw4YpIyNDXbp00dtvv61atWppwYIF6tOnj4KDg1VcXKzVq1erWbNmklRu28lkZ2crNDRUTqeT208AYHUvhnq7gnPHi05vV1Cu0/n77ZVAU569e/cqKSlJcXFxqlWr1im3lYdAAwDnEAJNxTmHAk2lz0NzMvXr11f9+vVPuw0AAJy/eNs2AACwPAINAACwPAINAACwPAINAACwPAINAACwPAINAACwPAINAACwvAoLNMYYFRcXV9TpAAAATtkZBZpHHnlELpfLY9vXX3+tSy+9tEKKAgAAOB1nFGjeeeedUoGmWbNm2rNnT4UUBQAAcDpO69UHx992bYzRrFmzFBQU5F7/6quvdMUVV1R8hQAAACdxWoHmgw8+kCTZbDZ98skn8vU9driPj48uvPBCzZ49u+IrBAAAOInTCjTffPONpGMB5j//+Q9vrgYAAFXCGY2heeihh+RwOCq6FgAAgDNyWj00x02dOlUul0vp6ekyxni0XXDBBRVSGAAAwKk6o0Dz1ltvacSIESooKPAINDabjbloAABApTujW04vvPCCxo8fr/z8fJWUlLgXwgwAAPCGMwo0ISEhuuGGG+Tn51fR9QAAAJy2Mwo0kydP1oMPPqiUlJSKrgcAAOC0ndEYmqFDh+rgwYNq1aqVwsPDPR7f3rVrV4UVBwAAcCrOKNAkJiZWcBkAAABn7owCTUxMTEXXAQAAcMbOKNBER0fLZrO5H9m22WzuNp50AgAAle2MBgUff0S7pKRER44c0TfffKNrr71WK1eurOj6AAAATuqMemj+LjAwUB06dNCiRYvUoUMHbdmypSLqAgAAOGVn1ENTlgMHDuiPP/6oqNMBAACcsjMeFPzPcTN//PGHnnjiiYqqCwAA4JRVyGPbNptNDRo0UKNGjSqiJgAAgNNyRrecOnbsqI4dOyowMFCZmZkKDAwkzAAAAK85ox6avXv3qkePHtq5c6fq1aunffv2qUmTJlq4cKHq1atX0TUCAACU64x6aB566CFdccUV+uuvv7Rt2zb9+eefuvzyy/XAAw9UdH0AAAAndUY9NOvWrdNPP/0kf39/SVJAQICeffZZtWzZskKLAwAAOBVn1EPTokULffjhhx7bPvzwQzVv3rxCigIAADgdZ9RDM3XqVHXp0kWffPKJYmJitGvXLuXk5Gj58uUVXR8AAMBJnVGgad68uXbs2KHFixcrPT1dAwYMULdu3VStWrWKrg8AAOCkzuiWU2pqqtq3by+73a4RI0bo5Zdf1lVXXaUdO3ZUdH0AAAAndcZPOV1//fXq3LmzJGnjxo3q3r27Bg8eXKHFAQAAnIozuuX0ww8/aO7cuQoNDZUkVatWTUOGDNGll15aocUBAACcijN+yumjjz7y2PbRRx+pWbNmFVIUAADA6TijHpopU6bopptu0ocffqjo6Gjt3r1bWVlZ+vLLLyu6PgAAgJM6o0Bz2WWXaefOnfriiy+UkZGhe++9V926dVNwcHBF1wcAAHBSZxRoJCk4OFh33313RdYCAABwRs5oDA0AAEBVQqABAACWR6ABAACWR6ABAACWR6ABAACWR6ABAACWR6ABAACWR6ABAACWR6ABAACWR6ABAACWd8avPsBZ8mKotys4N7zo9HYFAIBKRA8NAACwPAINAACwPAINAACwPAINAACwPAINAACwPAINAACwPK8EmoULF6pRo0by9fXVVVddpW3btkmSUlJSFBsbq/DwcI0YMULGGPcx5bUBAIDzW6UHmt9++00DBw7UuHHjtHfvXjVs2FCDBg2Sy+VSfHy82rRpo6SkJKWmpioxMVGSym0DAACo9ECzbds2jR07Vnfeeadq166thx9+WElJSVq6dKmcTqcmTZqkxo0ba+zYsZoxY4YkldsGAABQ6TMFd+/e3WN9+/btuvDCC5WcnKy2bdsqKChIktSyZUulpqZKUrltZXG5XHK5XO717Ozsir4MAABQhXh1UHBBQYEmTJigRx55RNnZ2YqJiXG32Ww22e12ZWVlldtWloSEBIWGhrqXqKios34tAADAe7waaJ577jlVr15dDz74oHx9feVwODzaAwIClJeXV25bWUaNGiWn0+le0tPTz9o1AAAA7/PayylXrFihadOmaePGjfLz81NERIRSUlI89snJyZG/v3+5bWVxOBylAhAAADh3eaWHZteuXerbt6+mTp2qSy+9VJIUGxurjRs3uvdJS0uTy+VSREREuW0AAACVHmiOHj2q7t27q2fPnurRo4dyc3OVm5ur9u3by+l0aubMmZKkcePGqVOnTrLb7erQocMJ2wAAACr9ltOyZcu0bds2bdu2Te+++657++7duzV9+nT16dNHI0aMUHFxsVavXn2sSF/fE7YBAABUeqDp2bPnCWf5jY6O1s6dO5WUlKS4uDjVqlXL47gTtQEAgPOb1wYFn0j9+vVVv379024DAADnL15OCQAALI9AAwAALI9AAwAALI9AAwAALK/KDQoGUMW8GOrtCs4dLzq9XQFwzqKHBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAAWB6BBgAA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v/5arVq1kiRlZGSoefPmOnz4sBcrPT9YZqZgVL5rr71Wv//+u6QT/1evzWbjjwcqzQUXXKA1a9botttuk3Qs4IwfP1433nij7rnnHq1atcq7BeK8cvHFF2v37t3atm2bmjZtKj8/P33zzTdq2bKle58vv/xS9evX92KV5w9uOeGENm/erKuuukpvvPGGSkpKylwIM6hMkyZN0oMPPqjp06d7bL/xxhu1YcMGrVmzxkuV4XwUERGht99+Wx07dtTs2bMlySPMPP3003ryySf1xhtveKnC8wu3nFCugwcPqnfv3nr33XcVHR3t7XIA7dq1S9u2bVO3bt1KteXn52vZsmXq0aOHFyrD+er4E00NGjTw2P7NN9/okksuUd26db1U2fmFQAMAACyPW04AAMDyCDQAAMDyCDQAAMDyCDQALCUtLU02m83bZQCoYgg0AADA8gg0AADA8gg0ACpdYmKirrzySvXo0UOhoaHq2rWr/vjjD0nS999/r6uvvlrVq1dXu3bt9PPPP5/SOdeuXavWrVsrKChIsbGxSklJcbctX75cTZs2VVBQkNq1a6fffvvN3fbxxx8rOjpa1apV00033cSLBAGLItAA8IrNmzfr6quv1g8//CCHw6HBgwcrOztbXbt21S233KLt27erbdu26tu370nPVVJSottvv1133HGHdu3apbi4OI0YMcLd3q9fP91///3asWOHmjdvrueee06SlJubq4EDB2rcuHFKTU2Vr6+vJkyYcNauGcDZw7ucAHhFgwYN9Mwzz8hms+nFF19UbGysFixYoIiICI0aNUqS9Nxzz+nKK688pfMlJycrNDRUP/74o3JycrRjxw53W2BgoFwul0JDQzVt2jSVlJRIkux2u/z8/ORyuRQZGalFixbxtm7AouihAeAVDRo0cD+tVL9+fRUXF+uPP/7weMVGeHi47rrrrpOey8fHR5MmTVL9+vX16KOPyul0erxnbPbs2Vq1apXq1q2ra665Rlu3bpV0LOh89tlnmj59umrVqqWuXbtq165dFXuhACoFgQaAV+zZs8fdU7Jnzx75+vqqQYMG2r17t3uf3NxcNW/eXPv37y/3XKtWrdLUqVO1bds2JSUl6f7773e3HTlyREeOHNGKFSt06NAhtW/fXvfdd5+kY+8qCw8P1/r16/Xnn38qMjJSw4YNOwtXC+BsI9AA8Ip9+/YpISFBu3fv1ksvvaQePXooPj5eWVlZGjt2rDIyMvTKK6+ouLhYtWvXLvdcubm5ko69JHD9+vUaPny4+9ZRSUmJunXrpo8//liZmZny8fFxB6nMzEzdcMMN+vLLL5Wdne3RBsBaCDQAvKJt27b6/vvv1bp1axUUFOitt95SSEiIvvzySy1evFhNmzbVxo0b9e9///ukE+kdH0h8+eWXa/DgwXrggQe0b98+/fnnnwoODtbHH3+sV199VY0bN9bixYs1depUSdLFF1+siRMn6uGHH1ajRo20fft2jR8/vjIuH0AF423bACpdYmKiEhMTtWrVKm+XAuAcQQ8NAACwPHpoAACA5dFDAwAALI9AAwAALI9AAwAALI9AAwAALI9AAwAALI9AAwAALI9AAwAALI9AAwAALI9AAwAALO//A4M+spg+MmItAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#看看各乘客等级的获救情况\n",
    "fig = plt.figure()\n",
    "fig.set(alpha=0.2)  # 设定图表颜色alpha参数\n",
    "\n",
    "Survived_0 = data_train.Pclass[data_train.Survived == 0].value_counts()\n",
    "Survived_1 = data_train.Pclass[data_train.Survived == 1].value_counts()\n",
    "df=pd.DataFrame({u'获救':Survived_1, u'未获救':Survived_0})\n",
    "df.plot(kind='bar', stacked=True)\n",
    "plt.title(u\"各乘客等级的获救情况\")\n",
    "plt.xlabel(u\"pclass\") \n",
    "plt.ylabel(u\"count\") \n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "79545647-6635-4ddb-bf71-fa0334663098",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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fFcgGjx4sMaPH++qpXr16q5h4qGhoW513n///QoJCdGnn36qF198UTk5OQoMDHS1h4WF6aefftL999+voUOH6sUXX3QNV5ekzz//XNWrV9ecOXP04IMPSpJbf6v9+/dryJAhWrp0qcaNG6dRo0apdevWWrhwoTp16qSwsDD961//0g033KBOnTopPDxcTZs2vaDP2MvLS3PmzCnWF6qwsLDECSPj4+NVs2ZNDRw40LVuw4YNuv766y/o/YBLznMXiQDr8ff3N0uXLi2xbebMmaZBgwal7nuht59Kk5qaaoYPH26Cg4NNx44dXX035syZY4YOHWqCgoLMF198UeK+hYWFJiIiwkyZMsW1btKkSUaSW78LLy8vc8MNN5Raw1+9/XT2llpRUZF5+umnTUBAgPnPf/5jJJkdO3aYSpUqmX/84x8mNze32DH37dtnOnbsaKZOnWqWLVt2QcPbN27caL766iuzZ88e13FK61Pz37Zu3eoa6dOyZUvXqLTCwkIzbNgwExISYmbMmGGMMSYsLMxs3rzZGGNMYmKisdvt5ttvvzWBgYFmzZo1xc7jtddeM1FRUa7RaP89+mnGjBmukVTTpk0zkszw4cNL/ZzPvf00ePDgUm8/3XLLLW7rVq5c6Zps76xffvnFeHl5mZUrVxpjit9+ysnJKbUW4FIg1ADlKCgoqMxQc+6P47m2b99ubrvtNvPHH3+41qWnp5vw8HDXEOdzffHFF6Zr167G19fXtGnTxqxfv97VdjbUGHNmtmNfX19z9913m4ULF7r1iVm8eLGpVKmSycjIcK0r6YfurMTExBI7C1933XVm4MCB551NOCYmplioOevQoUMmLi7OhIaGmo0bN7p1FN68ebOpWrWqadSokVmxYkUpn+KZH19JZv/+/SW279+/30gyBw8eLNZmt9vNggULXLVOmDChzL9b/fr1zZIlS1yvP/vsM5OQkGCMMSYtLc1IMsnJycbpdJp27dqZXr16GWOMGT16tKlZs2ax/k1FRUVuf5uwsLBi88ds3brV1K5d20RGRprg4OASw5ExJYcam81WrJOwl5eX29/61KlTpkGDBm4zDJ86dcpcd911pm3btq5154aahx56yPzjH/8o9bMCKhp9aoByduLECR06dKjYkp6eXuLzgpKSkrR9+3YlJSXJZrPpl19+0YsvvqgtW7Zoy5YtGj16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ocYYo759++r5559XZGSkJGn58uVyOByaMGGCIiMjNWbMGE2fPv28bSVxOp3KyMhwWwAAuBIcOXJEHTp0UKtWrTRgwABJUo0aNTRnzhz16tVL7777roqKilzbr1ixQh07dtSkSZMUFBSkU6dOSZLmzJmjTp066b333nPdTjpr/fr1io6O1rp169SnTx9dc801Wrx4sZ555hlt2LBBzzzzjHr27KkmTZqoWrVql+S8PRZqPvzwQ23fvl0RERH68ssvlZ+frx07digmJkaBgYGSpBYtWigpKUmSymwrydixYxUSEuJa6tatW/EnBQCABxlj9Mknn6hFixaKjY3Vhx9+6NZ+++23a+HChXr99dd1ww03aMqUKTpw4IAmTpyoL7/8UrGxsXI4HAoICNDBgwc1c+ZMvf/++4qMjNTw4cOLvd/jjz+uRYsWqUaNGpKkm2++WStXrtRNN92kWrVqad++fapdu/YlOXfJQ0O6s7KyNHz4cDVq1EiHDh3SnDlzNHr0aMXGxioiIsK1nc1mk91uV3p6ujIyMkptCw0NLfYeQ4cO1aBBg1yvMzIyCDYAgL+uHGb4rSh79uzRiBEj9NZbb+kf//iHa31+fr7ryswdd9yhxMREjRo1SkuXLlXv3r21cuVKSdLs2bPVtGlTZWVlqVOnTho+fLjq1KmjKVOmKDo6WpI0evRo2e123XLLLYqNjdXGjRu1detWxcTESJKaNGmi8ePH65133tH8+fM1ZswYde3aVePHj1eDBg0q9Pw9EmoWLVqk06dPa82aNQoLC9PQoUPVvHlzzZgxQ0888YTbtv7+/srOzpa3t7f8/PxKbCsp1Pj5+RXbHgAAK2vcuLF27dolu93utt7hcLhGLUnSVVddpffee8/1eseOHXryySeVlZWlWbNmqXXr1urYsaNrAr6rrrpKa9asUceOHdWgQQP169dP0pnOwoMGDZLT6dTo0aMlSW+88YY2bNigVatW6brrrtPdd9+tfv366emnn9ayZcvchouXN4+EmkOHDummm25SWFjYmSK8vdWiRQslJycrLS3NbdvMzEz5+voqLCzMbcbD/24DAABnnBtoJBX7/TxXkyZNNGHCBMXGxsput+urr75Ss2bN3LaJiorS9u3bFRQU5Lb+hx9+cHs9atQo+fv7u4ZwBwcH69///recTmeFBhrJQ31q6tatq5ycHLd1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mfL19S2zDQAAQPLAlZp///vfSktLU5UqVSRJ2dnZWrBggRo0aKD8/HzXdsnJyXI6nQoLC1N0dLQ++uijEtsAAAAkD1yp2bhxoxITE7V9+3Zt375d9913n0aNGqUNGzbI4XBo9uzZkqRx48YpLi5Odrtd7du3L7UNAABA8sCVmjp16ri9rly5sqpVq6Zq1app2rRp6t69u+Lj41VYWKj169efKdLbu9Q2AAAASbKZy2xq3sOHDyshIUGxsbGqXr36BbedT0ZGhkJCQuRwONw6KF92Xg3xdAXW8arD0xUAAP6ii/n9vuRXas4nPDxc4eHhF90GAACubB5/9hMAAEB5INQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLuOhQk5eXp759+5a5zb/+9S8dOnToTxcFAABwsbwvdgcfHx/NmTNHKSkpCg8P19VXX63Y2FjdeOON8vb21sqVKzVq1CjdddddqlOnTkXUDAAAUMxFhxqbzaaqVatqwIABSk1N1f79+zV8+HDt3r1bjzzyiD7++GPNmTNHzZo1q4h6AQAASnTBoWbmzJkKDw9X+/btFRAQoI4dO7raEhIS9MILL2jKlCmKjY1Vly5dKqJWAACAUl1wn5pt27YpPj5eoaGh+uOPPzRixAh1795dERERGjBggB577DEdP35cYWFhevnllyuyZgAAgGJsxhhzMTskJiZq9uzZ2rFjh9asWaOXXnpJb7zxhqvd4XCoRYsW+vLLL9W8efNyL/jPysjIUEhIiBwOh4KDgz1dTuleDfF0BdbxqsPTFQAA/qKL+f2+4Cs1gwcP1hNPPKHly5crPT1ds2fPVq9evRQVFaVOnTpp4cKFOn36tG677TYNGzZMhw8f/ssnAgAAcKEuONSMGTNGt99+u7KysmS329W9e3fddddd6t27t7Zs2aKPP/5YkZGRatmypfr06aM777yzIusGAABwc8Edhbt27SpfX1+lpaXp6NGjatKkiT7//HO1adNGoaGhWrp0qR566CF98803Onr0qGrWrFmRdQMAALi54Cs1Dz/8sB5++GG1a9dOe/fuVUBAgB588EG1bdtWJ06c0KZNm7R371699dZbev755yuwZAAAgOIuONTcfPPN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HAAAcBn4W4YaAACAc/2t+tQAAACUhlADAAAsgVADAAAs4W81ozAuDykpKXI4HGrSpIm8vfkK4dJzOp1as2aNQkJCFBsbK0maOnWq6tWrpw4dOiggIMDDFeJKdOjQIe3cuVPp6emSzsxif+2116pevXoeruzKwS8SSpWamqp//vOfstlsWrhwoSTphRde0IQJE+Tj46PatWvriy++UIsWLTxcKa4k27Zt03333SdfX189++yzrlAze/Zs7d+/XwUFBVqxYoVatWrl4UpxpUhJSVHPnj21ceNGBQUFuab0T09PV3Z2tm666SadPHlSU6ZMUYcOHTxbrMVx+wmlevzxx2WM0SuvvCJJmjNnjj744AOtXbtWubm5euyxx/Tcc895uEpcafr27avhw4dr//79euGFF1zrv/vuOx05ckT9+/dX3759PVghrjS9e/dW9erVdeDAATkcDh08eFAHDhzQ6NGjFRwcrN27d0uS2rVr5+FKrY8h3ShVcHCwdu3apfDwcBUUFKhx48bq3bu3RowYIUk6cuSImjRpooyMDA9XiitJ5cqVtWPHDkVGRpbYvn//fjVr1kynT5++xJXhShUQEKBdu3apQYMGbus/+eQTSVKbNm3UpEkT5eTkeKC6KwtXalCqxo0ba/Xq1ZKk0aNHKz09XQMHDnS1b9y4UbVq1fJUebhC3Xnnnerfv7+OHTtWrC0rK0vDhg3jEj8uqUaNGunjjz8utr5bt27q1q2bPvzwQzVu3NgDlV15uFKDUn3//ffq0qWLTp06JZvNprlz5+qBBx7Qvn379OSTT2rz5s2aOXOmunXr5ulScQVxOBzq3bu3li5dqoYNG+qqq66S3W5Xenq6du/eraZNm2rp0qUEblwy3377rTp37qyQkBC1aNHCrU/Njh07lJubqyVLluimm27ycKXWR6hBmXJycrRr1y7VrVvX9UiK1NRUffrpp4qLi1OzZs08XCGuVMnJyfruu+90+PBh5efnq0qVKmrZsqWr4zBwKTkcDi1dulS//PKLa/RT1apV1aJFC917770KCgrycIVXBkINAACwBPrUAAAASyDUAAAASyDUAAAASyDUAKhQeXl5ys/PL7Z+2bJl+v7775Wamqp+/fopLy/Prf348ePM6wHgohBqAFSof/3rX2rcuLGioqIUFRUlm82mb7/9VomJiRo6dKhuu+02NWrU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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#看看各登录港口的获救情况\n",
    "fig = plt.figure()\n",
    "fig.set(alpha=0.2)  # 设定图表颜色alpha参数\n",
    "\n",
    "Survived_0 = data_train.Embarked[data_train.Survived == 0].value_counts()\n",
    "Survived_1 = data_train.Embarked[data_train.Survived == 1].value_counts()\n",
    "df=pd.DataFrame({u'获救':Survived_1, u'未获救':Survived_0})\n",
    "df.plot(kind='bar', stacked=True)\n",
    "plt.title(u\"各登录港口乘客的获救情况\")\n",
    "plt.xlabel(u\"登录港口\") \n",
    "plt.ylabel(u\"人数\") \n",
    "\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "8183a52c-6a8d-4c60-9890-8e68b359ab6c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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2aIpU6ZUus6nsLBQubm58nq9at++vSTpn//8pwYPHqzZs2fr888/1+bNm/Xkk0+a27z55puy2WwKDw/XqFGjtHr1asXExJj9Dz/8sB588EHZ7XbNnDlT7777rjZs2CCPxyOn06mRI0eqdevW+vrrryVJffv21S233GLOZhUXFystLU0TJ06UJN1+++3atGmTQkNDtWzZMvPU4P333697771XN910k6QzAW316tW65ZZbzFpGjhxp/lzdaT/pzGwRAEINcMkLCAgodwpFOrO2Jjk5WXl5eZKkFStWqEmTJuVmXdLS0iRJixcvVosWLcyQcvXVV+vdd9/V5MmT1a9fPzPsOBwOhYWFme9/7qWXXtKkSZO0ZMkSbdmyxQwQPz1FVZUvvvhCvXr1UnBwsBlqiouLdfr0aT355JPlgkmZstmTa6+9Vp9//rkkqU+fPpo5c6Z++9vfqnnz5lqzZk25NUJlP7du3VpOp1P33XefPv30U/PY33//fT3//PP64osvzG18Pp86dOigzp07a/HixbrjjjvMcHL48GG1a9dOderUMY8jPDzcPBV17bXXas2aNZo9e7YKCwtlt9tls9n0wgsvSJKOHj1qznBVth7op8da1dVphmEQaoD/RagBLOjw4cOKjo42A8WyZcs0evRoBQYGmmMMw9CpU6e0bdu2cutgpDOLT7///nuNGDGixp/50/Czb98+XXnllTXe9sYbbyx32XR2drauu+46jRo1SlOmTKnxfrKysvT666+rcePGMgxDsbGxOnHihKQzgaa0tFR2u10lJSWaNWuWPvroI7lcLkVEREiSbr31Vj311FOaPHmymjRpou+++05jx46V2+1WWFiYmjVrps8//1ylpaUqLS3V999/r9atW5ufb7fbNWHChHKzWE6nU0OHDlVsbGyVdX/00Ue68847K7QfOXJETZo0kcfj0ebNm80FyD/HJeDA/zIAWEZcXJxxww03GA0bNjSefvppw263Gw6Hw5BkOJ1Ow+l0GkFBQYYkw263G82aNTOysrKMHTt2GJs2bTJ++k9CQUGBsWPHDuObb74xsrKyjJYtWxoTJ040srKyjO3btxsHDhwwx86cOdMYOHCgMWTIEKN9+/ZGVFSUMWTIEPM1a9YsIzs725BkZGVlGYZhGHa73Vi/fn2FY8jNzTU6dOhg2Gw2w263V/oKCAgwGjZsWG67L774wggNDTUmT55suN1uo27dusbHH39s3HjjjYakKl9Dhgwpt581a9YYa9euNSZMmGDY7XZDkjFnzhzDMAzj5MmTRkxMjLFjxw5j27ZtRnR0dKX/P+zbt8+QZBQUFBiGYRh5eXmGJGPfvn0VxkZHRxurVq2q0O5yuYwGDRoYixcvNttiY2ONd955xzAMw5BkbNq0qdLPBy5X3KcGuMT98MMPeumll9S6dWsdOnRIbdu21Xfffadnn31WXq9XgwYN0tChQ1VcXKzi4mLNmTNHjRs3VnFxsfbu3auWLVvqmmuuqbDfunXrasCAAerSpYu6du2q3bt36y9/+Yu6dOmiLl26lFsoGx0drWbNmik+Pl4+n08NGjRQfHy84uPjtXPnTn3zzTc1OpbvvvtOXbt21bfffqubb75ZXq+30tfChQsrXMbcsWNH7du3T88884xefvllnTp1SmvXrtWnn36q4uJilZaWqnnz5mrbtq0MwzBP+yxcuLDcfpKTk7VkyRK98MIL6tKli4YNG6bx48drx44dqlOnjnr27Kn3339fK1asUI8ePWp0XD8/PfhzP51BK/P888/LZrOpb9++ks5cPZadna3o6OgafSZwWfJ3qgLw6xw+fNho1aqVMX/+fOOKK64wPvnkE7Pv888/N4KDg8vNEHTq1MmYMGFChf38fKbm566++mrjjTfeOGs9Xbt2NcaOHWu+v++++4xHHnnEOHLkiCHJ+Pbbbw3DKD9TU1RUZEybNs0ICQkxhg0bZowdO/asMzWJiYkVPrukpMR44oknjNatWxsTJ040+vTpY/bt2LHDCAoKMurVq2fs2LGjwrZer9dYsGCB0ahRI6NLly7GE088Ydx4442Gx+MxevToYTRo0MDYu3evsW7dOqNhw4ZGXFycOWvycz+fqSkoKDAkGUFBQeaMWdlLUoUZq6ysLCMwMNCYP3++2bZp0ybDZrMZR48eNQyDmRqgMszUAJe4srUfI0eOrHCJ87Jly+R0OrV8+XK5XC7961//UkZGhh599NELUssPP/ygbdu2qWPHjmbbqVOnVKdOHXk8HkmVr//IzMzUjBkzNGXKFP3973+Xw+E460zNz23fvl033HCDvvrqK61fv14NGjQot05n6tSpuueeezR69Gg99thjFbY/duyYnn76aY0cOVIbN25UQkKCpDNrcT744APdeeedioqKUo8ePeRwOHT8+HH169fvnL6fXbt2mTNmZa+fz7wYhqHRo0fruuuu029/+1uz/Y033lDnzp3VsGHDCvst+16Ayx0LhQELqOo+Jq+++qqGDBmiF154Qc8995ycTqfGjx9f7jLm86W0tFSPPvqo6tevb142Lv1fqImPj6/y2VPJyck6cOCAeRWRJG3cuFH169evdLzH46nwx/3KK6/U0KFD9fjjj8vhcGjXrl1q3LixpDNXf3388cf65ptvFB0drXbt2umxxx7Tq6++am7fpEkTffvtt+ZVSIZhmN9reHi4/va3v6mkpEQPP/ywiouLFRISolGjRmnhwoU1usJLknkTwJ/6+eXar7/+ujZv3qytW7ean79gwQItX75cq1atqnS/O3fuVK9evbRixQolJyfXqBbAipipASykskt7r7nmGt12220yDEPR0dGaOnWqJk2aVOHy4LLAYRiGvF6vDhw4oGPHjiknJ0c5OTny+XwqLCxUTk6Ojh8/rkOHDqmwsFCSdPLkSd1777366KOPNHfuXDkcDhUUFGjv3r3KyspSZGRkuc86cOCAfD5fuUc6/DTQSFKXLl20f//+Sl8/DSNlwsLClJqaKofDoYyMDL3zzju68847tXXrVg0bNkyTJ09WixYtFB0drXfeeUezZ88276ZcJjw8XJmZmXrqqaf0xhtvqEGDBpLOrGd555131K5dOy1btkwrV67Uxo0btXnzZrVr107vvPNOue++LKj89DuVpD179lSYdSqbESoTHR2tcePGKSUlRXl5eXriiSf0u9/9Tk8//bR69epljrPb7Vq/fr127dqld999V7m5uYqPj6/wvQCXFf+d+QJwvmzatMn405/+ZNjtdmP16tXG999/b8yaNcsYOnSoUa9ePaNNmzbGp59+apSWlhqzZ882wsLCjMaNGxsffvihuY/Vq1cbkozi4mJzTUhAQECFNSBOp9MIDAw0JBnLly83fD6fccMNNxiBgYHl1pgMHDjQkGQ0btzYXNPj9XqNFi1aGAEBAUZoaKhx7NixSo8nNTW12iuWJBnx8fEVtvvqq6+Mnj17GoGBgcZjjz1mvPfee0ZgYKBx3333GaWlpeXGrlixwqhTp47x4IMPlmsvLi42YmJijJSUFOOrr74yDOPMWp0OHToYvXv3Ng4ePGiOPXLkiNGrVy/j/vvvL7ePr7/+2pBk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0+TJky/K8QAAIJ25v0tERISOHz8u6cyTr202m5+rqr0Mw1BRUZGOHz+uiIgI2e32X7U/v4SaESNGaMSIEeb7mTNnqnnz5mrZsqWcTme5scHBwealYVX1VRZqxo8fryeeeMJ873a7FRcXd56PBACA8sruvFsWbHB2ERER53TH4qrUiku6IyIiVFpaqkaNGikjI6NcX0FBgYKCghQVFVVlX2WcTmeFEAQAwIVms9nUuHFjNWjQoNz9W1C5wMDAXz1DU8YvoeaJJ55Qx44dzUeTb9u2TQEBAWrXrp3mzZtnjtu/f788Ho+ioqKUkpJSZR8AALWN3W4/b3+sUTN+WSh8zTXXaMKECdq4caPWrVunMWPGaOTIkbr11lvlcrm0aNEiSdL06dPVq1cv2e12de/evco+AAAAv8zU3HfffcrKylK/fv0UFhamAQMGaOrUqXI4HJo7d66GDx+u1NRU+Xw+ffbZZ2cKraYPAADAZtTCi+kPHz6stLQ0de7cWTExMTXuq47b7VZ4eLhcLpfq1at3vkuu3Z4N93cFuJhq+fNlAOBcnMvf71qxUPjnYmNjFRsbe859AADg8uW3xyQAAACcT4QaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCbXyKd04v+KL3/F3CbiI9vu7AADwE2ZqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJfg91Nx2221asGCBJCkjI0MpKSmKjIxUamqqDMMwx1XXBwAA4NdQ8/e//13//ve/JUkej0d9+/ZVcnKy0tLSlJmZaYad6voAAAAkP4aaEydO6Mknn9RVV10lSVq5cqVcLpdeeeUVJSYmaurUqXr77bfP2gcAACBJDn998JNPPqkBAwbo1KlTkqT09HR17NhRoaGhkqT27dsrMzPzrH1V8Xg88ng85nu3230hDgMAANQSfpmpWb9+vdauXasXX3zRbHO73UpISDDf22w22e125eXlVdtXlWnTpik8PNx8xcXFXZiDAQAAtcJFDzXFxcUaPXq0Zs2apXr16pntDodDTqez3Njg4GAVFRVV21eV8ePHy+Vyma9Dhw6d3wMBAAC1ykU//fTcc88pJSVFd955Z7n2qKgoZWRklGsrKChQUFBQtX1VcTqdFYIQAACwroseat555x1lZ2crIiJCklRUVKRly5YpPj5eJSUl5rj9+/fL4/EoKipKKSkpmjdvXqV9AAAAkh9OP23atEkZGRn6+uuv9fXXX+uuu+7SlClTtHHjRrlcLi1atEiSNH36dPXq1Ut2u13du3evsg8AAEDyw0zNFVdcUe593bp1Vb9+fdWvX19z587V8OHDlZqaKp/Pp88+++xMkQ5HlX0AAACSZDNq2a15Dx8+rLS0NHXu3FkxMTE17jsbt9ut8PBwuVyucguULwfx41b4uwRcRPun33n2QQBwiTiXv99+u09NVWJjYxUbG3vOfQAA4PLm92c/AQAAnA+EGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAkOfxcAAPgVng33dwW4mJ51+buCWo2ZGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAmEGgAAYAl+DTW5ubnasmWLcnJy/FkGAACwAL+FmqVLlyopKUkPP/ywmjZtqqVLl0qSMjIylJKSosjISKWmpsowDHOb6voAAMDl7ZxDzenTpzV69Ohqx7z00kv64YcfquzPz8/XmDFjtGnTJu3YsUNz5szR2LFj5fF41LdvXyUnJystLU2ZmZlasGCBJFXbBwAAcM6hJjAwUIsXL9Ydd9yhBx54QDNmzNCWLVvk9XolSatXr9aUKVOUn59f5T4KCgr06quvqm3btpKkq6++Wnl5eVq5cqVcLpdeeeUVJSYmaurUqXr77bclqdo+AAAAx7luYLPZFB0drUcffVQ//vij9u3bp4kTJ+r777/XkCFDtHDhQi1evNgMLJWJi4vTiBEjJEklJSWaMWOGBg4cqPT0dHXs2FGhoaGSpPbt2yszM1OSqu2rjMfjkcfjMd+73e5zPVQAAHAJqXGomT9/vmJjY9W9e3eFhISod+/eZl9aWpqeeuopzZ49W507d1b//v1rtM/09HT16NFDQUFB2rlzp5577jklJCSY/TabTXa7XXl5eXK73VX2RUZGVtj3tGnTNHny5JoeHgAAuMTV+PTTf/7zH6WmpioyMlLHjh3TM888o+HDhyshIUGPPvqo7r33XuXk5CgqKkp/+tOfarTP9u3ba+3atWrTpo1GjRolh8Mhp9NZbkxwcLCKioqq7avM+PHj5XK5zNehQ4dqeqgAAOASVOOZmpkzZ0o6cwXSokWL9OWXX2rdunUaO3asnn/+eXPc3Llz1b59ew0bNkzt2rWrdp82m03XXnutFixYoGbNmmnatGnKyMgoN6agoEBBQUGKioqqsq8yTqezQggCAADWVeOZmieffFKjRo3SypUrlZeXp0WLFum+++5TUlKS+vbtq3fffVeFhYW6+eabNWHCBB0+fLjKfa1bt06pqanme4fjTLZq2bKltm7darbv379fHo9HUVFRSklJqbIPAACgxqFm6tSp6tmzp06ePCm73a7hw4fr9ttv18iRI7V161YtXLhQiYmJuvbaa/WHP/xBt912W5X7atmypebMmaO5c+fq0KFDGjdunG699VbdeeedcrlcWrRokSRp+vTp6tWrl+x2u7p3715lHwAAQI1PP91zzz0KCgpSdna2jh49qpYtW+q9995Tp06dFBkZqU8++USDBg3SqlWrdPToUTVq1KjKfTVp0kTLly/X448/rqeeekq9e/fW4sWL5XA4NHfuXA0fPlypqany+Xz67LPPzhRaTR8AAECNQ83gwYMVFBSkb775RtOmTdO1116ru+++W127dpXb7daWLVu0Z88e/fnPf9Zjjz1m3iG4Kr179670kuz+/ftr9+7dSktLU+fOnRUTE1OjPgAAcHmr8emnLl26aMaMGQoLC1P//v114MABhYSE6LvvvpMkpaam6oorrtDQoUO1d+9e7d69+xcXFRsbq379+lUaWqrrAwAAl68az9SsXbtW48aNk81m086dOzVz5kx17dpVW7duVWhoqD7//HP9+OOPkqShQ4dqy5YtuvLKKy9Y4QAAAD9V41DzwAMPSDpzB+DevXurTp06+uSTT1S/fn0tW7ZMktS4cWMZhqE//OEPCgsLuzAVAwAAVOIXPfupTp06kqQ2bdooICBAnTp1MvsXLVqku+666/xVCAAAUAPnHGqqk5ubqz/96U/lQg4AAMDFcN5CTXFxse6++241adJEkyZNOl+7BQAAqJHzEmr++9//qnv37ioqKtKaNWt4PAEAALjoflWoyc/P14QJE3TNNdeoV69e2rRpk8LDw89XbQAAADVWo6ufcnNzNWfOHDVs2FCGYSgvL0/p6elat26dBg4cqG3btumqq6660LUCAABUqUahJjs7W++//74cDofsdruys7N18OBBRUZGKiQk5ELXCAAAcFY1CjUtW7ZUWlpauTaPx6MvvvhCCxcuVIcOHfTAAw9oypQpCg0NvSCFAgAAVOcXr6lxOp266aabNH/+fG3fvl3bt29X9+7ddeLEifNZHwAAQI2cl6ufEhMTtWbNGrVo0ULdu3fXyZMnz8duAQAAauy83acmICBAS5YsUYMGDfTggw+er90CAADUyHm9o3BAQIBmz56tr776Svn5+edz1wAAANWq8QMta6pFixZKT0/nqigAAHBRndeZmjIEGgAAcLFdkFADAABwsRFqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJRBqAACAJfgt1Hz00Udq3ry5HA6HbrjhBmVlZUmSMjIylJKSosjISKWmpsowDHOb6voAAMDlzS+hZu/evRo1apSmT5+uw4cPq1mzZvr9738vj8ejvn37Kjk5WWlpacrMzNSCBQskqdo+AAAAv4SarKwsTZ06VYMHD1bDhg310EMPKS0tTStXrpTL5dIrr7yixMRETZ06VW+//bYkVdsHAADg8MeH9unTp9z7Xbt2KSkpSenp6erYsaNCQ0MlSe3bt1dmZqYkVdtXGY/HI4/HY753u93n+zAAAEAt4veFwqdPn9aMGTP0xz/+UW63WwkJCWafzWaT3W5XXl5etX2VmTZtmsLDw81XXFzcBT8WAADgP34PNRMnTlTdunX1hz/8QQ6HQ06ns1x/cHCwioqKqu2rzPjx4+VyuczXoUOHLtgxAAAA//PL6acyq1ev1uzZs7V161YFBgYqKipKGRkZ5cYUFBQoKCio2r7KOJ3OCiEIAABYl99mav773/9qxIgRmjVrllq3bi1JSklJ0datW80x+/fvl8fjUVRUVLV9AAAAfgk1p06dUp8+fdS/f3/169dPJ0+e1MmTJ9WtWze5XC4tWrRIkjR9+nT16tVLdrtd3bt3r7IPAADAL6ef/v3vfysrK0tZWVl66623zPZ9+/Zp7ty5Gj58uFJTU+Xz+fTZZ5+dKdThqLIPAADAL6Gmf//+Vd4NOD4+Xrt371ZaWpo6d+6smJiYcttV1QcAAC5vfl0oXJXY2FjFxsaecx8AALh8+f2SbgAAgPOBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACyBUAMAACzB4e8CAAC/XHzxO/4uARfRfn8XUMv5daYmNzdXCQkJ2r9/v9mWkZGhlJQURUZGKjU1VYZh1KgPAABc3vwWanJyctSnT59ygcbj8ahv375KTk5WWlqaMjMztWDBgrP2AQAA+C3UDB06VEOHDi3XtnLlSrlcLr3yyitKTEzU1KlT9fbbb5+1DwAAwG+hZu7cuXr00UfLtaWnp6tjx44KDQ2VJLVv316ZmZln7auMx+OR2+0u9wIAANblt1DTvHnzCm1ut1sJCQnme5vNJrvdrry8vGr7KjNt2jSFh4ebr7i4uPN/EAAAoNaoVZd0OxwOOZ3Ocm3BwcEqKiqqtq8y48ePl8vlMl+HDh26YHUDAAD/q1WXdEdFRSkjI6NcW0FBgYKCgqrtq4zT6awQggAAgHXVqpmalJQUbd261Xy/f/9+eTweRUVFVdsHAABQq0JN9+7d5XK5tGjRIknS9OnT1atXL9nt9mr7AAAAatXpJ4fDoblz52r48OFKTU2Vz+fTZ599dtY+AAAAv4ean98VuH///tq9e7fS0tLUuXNnxcTE1KgPAABc3vweaioTGxur2NjYc+4DAACXr1q1pgYAAOCXItQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLINQAAABLuORCTUZGhlJSUhQZGanU1FQZhuHvkgAAQC1wSYUaj8ejvn37Kjk5WWlpacrMzNSCBQv8XRYAAKgFLqlQs3LlSrlcLr3yyitKTEzU1KlT9fbbb/u7LAAAUAtcUqEmPT1dHTt2VGhoqCSpffv2yszM9HNVAACgNnD4u4Bz4Xa7lZCQYL632Wyy2+3Ky8tTZGRkubEej0cej8d873K5zH1cbko9Rf4uARfR5fjf+OWM3+/Ly+X4+112zDVZQ3tJhRqHwyGn01muLTg4WEVFRRVCzbRp0zR58uQK+4iLi7ugNQL+Fv6qvysAcKFczr/fBQUFCg8Pr3bMJRVqoqKilJGR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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#看看各性别的获救情况\n",
    "fig = plt.figure()\n",
    "fig.set(alpha=0.2)  # 设定图表颜色alpha参数\n",
    "\n",
    "Survived_m = data_train.Survived[data_train.Sex == 'male'].value_counts()\n",
    "Survived_f = data_train.Survived[data_train.Sex == 'female'].value_counts()\n",
    "df=pd.DataFrame({u'男性':Survived_m, u'女性':Survived_f})\n",
    "df.plot(kind='bar', stacked=True)\n",
    "plt.title(u\"按性别看获救情况\")\n",
    "plt.xlabel(u\"性别\") \n",
    "plt.ylabel(u\"人数\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "34418cec-d129-4d0f-98a6-b6df9002fd64",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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YAzEx8dXdJWoAjAOiDFABZX68lC+Xbt24fPPP0d4eDhsbW3h4eGByMhIi3nS09NhZ2dX4rTi2NvbWyQ6bA6segrGAFVNjANiDFBBVrW0XLhwAePGjcPKlSuVyzZBQUEIDw9X5omLi4PBYICHh0eJ04iIiIisUeqkJSsrC4MGDcKwYcMwdOhQZGRkICMjA127doVer8eGDRsAACEhIejduze0Wi26detW7DQiIiIia5T68tCOHTsQHR2N6OhorF69Whl/8eJFrFq1CmPHjsXs2bNhMpmwb9++vIXrdMVOIyIiIrJGqZOWYcOGFfs0W39/f8TGxiIiIgKdOnWCl5eXRbniphERERGVltUdcYvj4+MDHx8fq6cRERERlYbVtzzfz7uERo8ejenTp1u7SiIiIiLrkpb7eZfQjh07sHv3bixatOhe6klERERVnFVJy72+SygrKwsvv/wyQkJC4Obmdq91JSIioirMqqTlXt4lBACLFi1CVlYWdDoddu/ebdUlJSIiIiLAyqTlXt4ldPnyZYSGhqJBgwa4fPkyZs+ejREjRhSbuBgMBqSlpSkfvjCRiIiIACuTlnt5l9D69evh7e2NXbt24c0338TevXuxb98+7Nq1q8j5+cJEIiIiKopVSYuHhweSk5Mtxt3tXUIJCQno1auXkuw4OzujYcOGuHjxYpHz84WJREREVBSrkpZ7eZeQr68vsrKylGGz2YyEhAT4+fkVOb+9vT1cXFyUj7OzszVVJCIiooeUVUlLSe8SSktLQ25ubqEyo0aNwm+//Yaff/4ZCQkJmDdvHgwGAzp37lw2W0BERERVgtV9WlatWoWXXnoJ3t7e+OmnnxASEgIg706i7du3FyrTuHFjfP/991i8eDEaNmyI7du345dffmELChEREVnF6sf4F/cuobi4uGLLDBw4EAMHDrznShIRERHd07uH+C4hIiIietCsfvcQERERUUVg0kJERESqwKSFiIiIVIFJCxEREakCkxYiIiJSBSYtREREpApMWoiIiEgVmLQQERGRKjBpISIiIlVg0kJERESqwKSFiIiIVIFJCxEREakCkxYiIiJSBSYtREREpApMWoiIiEgVmLQQERGRKjBpISIiIlXQVXQFiIjK0+aYqw9sXSMa135g6yKqitjSQkRERKrApIWIiIhUgUkLERERqQKTFiIiIlIFJi1ERESk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KrA2VFEYB8QYoIKsamkJDAwsNC4tLQ0BAQHKsEajgVarRWpqaonTihMcHAxXV1fl06xZM2uqSA+BgjHg6+tb0VWiCsA4IMYAFXTfdw/pdDrY29tbjHNwcEBmZmaJ04ozb9486PV65XO3lhl6+BSMgfj4+IquElUAxgExBqggqy4PFcXDwwORkZEW49LT02FnZ1fitOLY29tbJDpsDqx6CsYAVU2MA2IMUEH33dISFBSE8PBwZTguLg4GgwEeHh4lTiMiIiKyxn0nLd26dYNer8eGDRsAACEhIejduze0Wm2J04iIiIiscd+Xh3Q6HVatWoWxY8di9uzZMJlM2Ldv312nEREREVnjnpKWgk+1HTZsGGJjYxEREYFOnTrBy8urVNOIiIiISuu+W1ry+fj4wMfHx+ppRERERKXBFyYSERGRKjBpISIiIlVg0kJERESqwKSFiIiIVIFJCxEREakCkxYiIiJSBSYtREREpApMWoiIiEgVmLQQERGRKjBpISIiIlVg0kJERESqwKSFiIiIVIFJCxEREakCkxYiIiJSBSYtREREpApMWoiIiEgVmLQQERGRKjBpISIiIlVg0kJERESqwKSFiIiIVIFJCxEREakCkxYiIiJSBSYtREREpApMWoiIiEgVmLQQERGRKugqugJE5WpfxINbV/d2D25dD2q7HuQ2ERHdBVtaiIiISBWYtBAREZEqMGkhIiIiVWDSQkRERKrApIWIiIhUweqkJTIyEkFBQXB3d8fs2bMhIncts2rVKtSuXRu2trbo06cPrl69ek+VJSIioqrLqqTFYDBg8ODBaNu2LSIiIhAVFYX169eXWObAgQN466238PXXX+PixYvIzs7Gq6++ej91JiIioirIqqQlLCwMer0eoaGhqF+/PpYsWYK1a9eWWCYmJgYrV65E7969UbduXUycOBEREQ/w2RlERET0ULDq4XKnTp1Chw4d4OTkBABo1aoVoqKiSiwzadIki+GYmBg0aNCg2PkNBgMMBoMynJ6ebk0ViYiI6CFlVUtLWloaAgIClGGNRgOtVovU1NRSlb9x4wa++OILvPzyy8XOExwcDFdXV+XTrFkza6pIREREDymrkhadTgd7e3uLcQ4ODsjMzCxV+ZdffhmdOnXCwIEDi51n3rx50Ov1yuduLTlERERUNVh1ecjDwwORkZEW49LT02FnZ3fX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",
      "text/plain": [
       "<Figure size 640x480 with 5 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig=plt.figure()\n",
    "fig.set(alpha=0.65) # 设置图像透明度，无所谓\n",
    "plt.title(u\"根据舱等级和性别的获救情况\")\n",
    "\n",
    "ax1=fig.add_subplot(141)\n",
    "data_train.Survived[data_train.Sex == 'female'][data_train.Pclass != 3].value_counts().plot(kind='bar', label=\"female highclass\", color='#FA2479')\n",
    "ax1.set_xticklabels([u\"获救\", u\"未获救\"], rotation=0)\n",
    "ax1.legend([u\"女性/高级舱\"], loc='best')\n",
    "\n",
    "ax2=fig.add_subplot(142, sharey=ax1)\n",
    "data_train.Survived[data_train.Sex == 'female'][data_train.Pclass == 3].value_counts().plot(kind='bar', label='female, low class', color='pink')\n",
    "ax2.set_xticklabels([u\"未获救\", u\"获救\"], rotation=0)\n",
    "plt.legend([u\"女性/低级舱\"], loc='best')\n",
    "\n",
    "ax3=fig.add_subplot(143, sharey=ax1)\n",
    "data_train.Survived[data_train.Sex == 'male'][data_train.Pclass != 3].value_counts().plot(kind='bar', label='male, high class',color='lightblue')\n",
    "ax3.set_xticklabels([u\"未获救\", u\"获救\"], rotation=0)\n",
    "plt.legend([u\"男性/高级舱\"], loc='best')\n",
    "\n",
    "ax4=fig.add_subplot(144, sharey=ax1)\n",
    "data_train.Survived[data_train.Sex == 'male'][data_train.Pclass == 3].value_counts().plot(kind='bar', label='male low class', color='steelblue')\n",
    "ax4.set_xticklabels([u\"未获救\", u\"获救\"], rotation=0)\n",
    "plt.legend([u\"男性/低级舱\"], loc='best')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "077adc39-5fb6-46e7-903e-a3fd60e36c47",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAHFCAYAAAAKbwgcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/sElEQVR4nO3de1RVdf7/8dfhHDiIyk3RFBEJTScvaUajZGTfqJwMtbIymyydUme62OTQZFOTNYV0M6v5pVIpoWZp2V2ayltesqILDmKTmijeEhUPKHC4fX5/tDyrE4hYwIHt87HWXsu9P/vy3ruQl5/92XvbjDFGAAAALZyfrwsAAABoCIQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQawEfWr1+vAwcO1FheUlKip556SlZ82fenn36qbdu2+boMj/LycuXl5WnFihV6/vnntXDhwjrXf+WVV5Senu6ZP3z4sP74xz/q+++/r9fxHnjgAWVnZ0uSKioqPMs//vhjffTRR3Vum5OTc8Jrt2/fPn3xxRd1bl9WVlavGoGWzMZnEgDfiIyM1P/7f/9Po0aN8lq+Y8cO/e53v9MLL7ygCRMm+Ka4RtKrVy/16dNHb7zxRr3W37dvn/bv3y+n0yk/v9r/DVZdXS23262IiAh16dLFq+3xxx/XZ599psrKSrndbpWWlqqkpEQul0uFhYU6cuSIAgICFBYWpvbt2ys8PFxvvPGGIiIiJEmlpaUyxigwMFB+fn66+eabZYxRRkaGJKmgoEAdOnTQV199pXPPPVfV1dUqKSlRUFBQrfUGBwfrtdde09q1a1VQUKCXXnpJkjR8+HDZ7Xa9++67J7wWV1xxhbp166YXXnhBbrdbRUVFnusyf/58PfHEE9qyZYukn8KazWZTWFiYJOmpp57Sa6+9pvXr18vpdOrAgQPq2LFjndf+2LFjCgoKqnMdoLlx+LoA4HTl7+8vh6Pmj2BMTIz+/ve/a+fOnbVuV1FRoQcffFDz5s1TWVmZRo8ereeee05t2rSp13G7deumO+64Q3/7299Ouq7NZtOqVas0dOjQeu37uOLiYm3bts0rjPz444/63//+p3Hjxum7776rsU15ebnsdrt69+7tWZaRkaEHH3xQTqdTdrtdlZWVOnbsmEJCQjzrGGNUWVmpKVOmKCUlxWufw4YNk81mU2hoqEJDQxUUFKSUlBR16dJFc+fOVWhoqFq1aiVjjCoqKmSMkdPp9Gz/2GOP6bHHHqtR64IFC7zmBw4c6DW/ZcsW9erVq8Z2DodDgYGBGjJkiEaMGKH7779fUVFRWr9+vebNm1fXJVXbtm0VGBgoSfrkk0909dVXe65veXm53G63J9S53W5deumlnpA0ZMgQ3X///frb3/6m559/3nOOy5cv14UXXuh1nEWLFmny5Mle1wFoMQyAJlNZWWnKyspMdXW1iY6ONu+8844pLS01X3zxhXE6nXVOL730kjHGmEmTJpk2bdqYefPmmffee8/ExMSYm2++ud41REdHmyeffLJe63755ZemqKjolM9z9erVJiAgwLRt29aEhISYkJAQ4+/vb/z8/Dzzv5zatGljBg4cWOd+3377bePn53dKtfTs2dP4+fl5rqMkExAQ4HVtAwICjM1mM1OnTvXa9ujRo+bw4cOmpKTElJaWmj/+8Y/m+uuvN6Wlpaa0tNTs2rXLSDIbNmwwpaWlpri42Bw8eNBUVlZ69vHmm2+a999/3yxfvtwEBwebxx9/3HzwwQfm4YcfNrm5uSYzM9M4HA6TnZ1ttm7darZu3Wo2b95sDh065FXLzTffbKZOnWq2bt1qqqurzY8//mgOHz5siouLzZw5c8yZZ55piouLjcvlMj/++KNxu91e26emphpJZvny5aaoqMhIMqtWrapxvebPn2/41YCWip4aoAl9+eWXGjx4sGw2m4wxGjlypK655ho9+OCDcrvdnnE0u3btUteuXT3b9e/fX/7+/tq6datefPFFPfXUUxo/frykn26RjBkzRo8++miN2y+/1Xnnnfertrvooovkdrs98wUFBerTp4+efvpp/fGPf/zV9VRWVtbau1WXnJwczzabN29Wnz59tH379lqvVVVVldd869atdeDAAXXt2lV2u12XXHKJevTo4ekxCQkJ0cKFC9WjRw8FBAQoMDCwRo/Z/fffL4fDIT8/Px07dkxpaWkKCgpSZWWl2rVrpw0bNqiyslLnnHOO13bz58/XLbfcomXLlunpp59Wjx495Ha7NWDAAGVmZur6669XYWGhAgICvHpqqqqqVFZWpk8++UQXXXSRZ39//etftWbNGkVHR8tms53SNQRaCgYKA03o/PPPV0VFhaqrqxUdHa333ntP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8GG5XC7POgUFBVq/fr0qKytVVVWliy++WP/617/0u9/9Tv/+97/1zjvv1FrHz9nt9noNHv252NjYWpc7HA7NmTNHS5cu9RrQfPz2U21Tfbz66qsqKyur85bJz2VlZemiiy7SM888o+XLl0v66baNw+Goddq+fXuNMBAeHq7//ve/uvDCC3XfffcpODhYO3fuVOvWreVwOPTmm28qIiLC6701AQEBnuu7Y8cOXX/99Z7xNu3atdPAgQP1xhtvKCMjQ/fee6969eql8847T0lJSYqMjPR6T09d/Pz8tGDBAgUGBnpNf/3rX2tdPzk5WWeccYZX+6effqr+/fvX63hAS0CoAZpQ586dtXnzZt1yyy01eieWLFkip9OppUuXyuVy6cMPP1ROTo6mTJniWef44OGfv3l23bp18vPz04ABA5STk6MNGzbo5Zdf1oMPPqjhw4drz549NepYv369589Hjx7V//73P3Xv3v2UzqWu3pW4uLgab0q++OKLT/jk08kC1c6dO3Xvvffqz3/+c50h6Ph+jDGaNWuW3G63srKydMEFF0jSSXtqfq66uloPPPCALr74Yj300EOaNGmS5yk06aenmt5//3299dZb+vjjj7Vq1aoa9SxYsEBff/21Pv/8c911112e5cOGDVNaWprnMe4//vGP+vLLL3XdddfVeR1+6aabbvL06h2fnnnmmRrrffLJJ1q4cKGeffZZzwDknJwcrVq1SldffXWt++azCmiRfHz7CzhtRUdHm/fee89r2YYNG8zw4cNN27ZtTfv27U1KSkqN7S699FITHBxs5s2bZ15//XUTERFhbrjhBmOMMbt27TI2m81MnDjRfPrpp+af//yn54Vzx8efREdHGz8/PzNt2jTzySefmFGjRpmgoCCzZ8+eGsdSHWNqfm7Hjh1GktmxY0eNffzwww+el74VFxfXOtnt9hOOqdm1a5fp2bOnOeuss8yxY8eMMabWMTUHDx40Xbt2NevXrzfGGON2u015ebkxxpiKigojyYSEhJh27drVOvn5+ZkFCxZ4HXvp0qUmKyvLGGNMQUGBkWTy8vKM2+02F154oRk3bpwxxpjHHnvMnHHGGSY3N9dr++rqauNyuTzz4eHhZvXq1V7rfPHFF6Zz584mNjbWBAcHe42H+rlfjqmZOnWqsdlsNcYG+fn5mYsuusiz3pEjR0y3bt1MUlKS17JzzjnHDBkyxLPsl2Nqrr32WjNhwoRaawGaK3pqAB+p7ZHZ/v37a9iwYTLGqF27dkpJSdFDDz2ko0ePetZZtmyZbrzxRk2dOlW33XabrrrqKs83hKKiojR37lx9+OGHGj58uD799FPNnj1bkrweNb7zzju1bt06XXnllcrPz9d//vMfde7cuVHO83jvSW23n7Zu3ap169apqqrK60mm49577z2df/75OnbsmDIzMz3fIjr+pNiiRYs8j3QvXLhQu3bt8oyLCQgIqHE7aenSpcrLy6t16tatW43jjx49WgMHDlRVVZX++c9/qnfv3urUqZMmTJigH374QTNnzpQk3XfffTr33HN18cUX69NPP/Vsb7PZFBwcrOeee0433XSTDh8+rA4dOkj66ZH1P//5z56nm7777jvdcsstSkxM1KRJk7zeh3P8OpqffarPGKNx48bV6HGaP3++13alpaUaNGiQnn32WUnSihUrdP755+vQoUNej5o7HA59//33nnfofPbZZ7X+NwGaNR+HKuC0s3btWnP//fcbu91uPv74Y/P999+b2bNnmzFjxpjg4GDTu3dvs3z5clNdXW3mzJlj2rZtazp16mTefvttX5f+q/z3v/894Sv577rrLtO2bVtz4403evW6FBUVmcsuu8xIMomJiWb//v1e21VXV5uRI0caPz8/r6eOrrzyylprOHbsWL2ewEpPT6+x7dSpU03Xrl1Nt27dTFZWlhk0aJAJDQ319OAcV1paaq644grTtm1b8/3333u1Pfroo6ZTp05mypQpnmXvvvuuCQ0NNXPnzvVad968eaZTp041en1GjRpl7rjjDq9r98unn7Zt22auv/76Ez7F9OCDDxpJZujQoWbXrl1ebV9//bXp3bu3ad++vQkODjaDBw+usQ7Q3BFqgCa2ZcsW06NHDzN58mRTVlZm8vPzTWxsrPnTn/5kPvnkkxrr79y504wYMcJkZ2f7oNrGVdcj2YsWLTIZGRkNcpzDhw8bSWbt2rUnXCc2NtbMmTOnxvIlS5aYRYsWmdLSUmOMMW+99ZbXI9s/V1lZab799ttTqqs2JSUlNZZdddVV5u677/bMT5o0qUao+eabb0y3bt3MokWLTni8zMzMetcHtDQ2Y37WnwkAANBCMaYGAABYAqEGAABYAqEGAABYAqEGAABYwmnzle7q6mrt3btXbdu2lc1m83U5AACgHowxKi4uVufOnev85pl0GoWavXv3KioqytdlAACAXyE/P19dunSpc53TJtS0bdtW0k8XJTg42MfVAACA+igqKlJUVJTn93hdTptQc/yWU3BwMKEGAIAWpj5DRxgoDAAALIFQAwAALIFQAwAALOG0GVNTH8YYVVZWqqqqytel+ITdbpfD4eCRdwBAi+STUJOenq7x48fXWD5//nydd955Gj9+vLZt26Zbb71VTzzxhOeXbE5Ozgnbfqvy8nLt27dPJSUlDbK/liooKEidOnVSQECAr0sBAOCU+OQr3eXl5V7h4ejRoxowYIDWrVunYcOG6fLLL1dycrLuuusujR49WuPHj5fb7VavXr1qbauPoqIihYSEyOVy1Xj6qbq6Wlu3bpXdbldERIQCAgJOu94KY4zKy8tVUFCgqqoq9ejR46QvOQIAoLHV9fv7l3wSan4pJSVFO3fu1B/+8AdNmDBBu3fvVlBQkLKzs3X77bdr3bp1evvtt0/YVh91XZSysjLt2LFD0dHRCgoKaoxTbDFKSkq0c+dOxcTEKDAw0NflAABOc6cSanw+pqasrEzPPvusPv/8c73yyisaNGiQJ1j069dPubm5kqTs7OwTttXG7XbL7XZ75ouKik5aCz0TXAMAQMvl899gr776qgYNGqRu3bqpqKhIMTExnjabzSa73a7CwsI622ozY8YMhYSEeCY+kQAAgLX5PNTMmTNHkydPliQ5HA45nU6v9sDAQJWUlNTZVptp06bJ5XJ5pvz8/MY5AQAA0Cz4NNRs27ZN27ZtU2JioiQpPDxcBQUFXusUFxcrICCgzrbaOJ1OzycRfuunET7//HMNHDhQbdu2VWJiovbs2fOr91Ufq1evVrdu3Rpl3+np6Ro6dGij7BsAAF/yaahZsmSJrrzySvn7+0uS4uLitHHjRk97Xl6e3G63wsPD62xrTCUlJRo5cqTuuOMO5ebmqm3btrrjjjsa9ZhDhgzRpk2bGvUYAABYjU9DzYcffqiLL77YM5+QkCCXy6WMjAxJUmpqqhITE2W32+tsa0xbtmxRYWGhxo8fr6ioKD300EON/ri3w+Hgo5sAAJwin4Wa0tJSff755xo8eLBnmcPhUFpamiZPnqyOHTvqjTfeUGpq6knbGlNUVJRsNpumT5+uiooK9e/fX8uWLatxGycvL88r7AwdOlTp6emaOXOmoqOj9e6770qSHnvsMd10002e9f773/+qXbt2qqys9Cyr7fbTybb78MMP1bdvX4WGhurWW2/1evLrX//6lyIiItS9e3d9/fXXDXJdAABobnz2SHerVq28fvEeN2rUKG3dulVZWVmKj49XREREvdoaS4cOHbRw4ULdeuutSk9P1yOPPKJx48bVa9u5c+eqXbt2evHFF3XuuedKkkaPHq0LL7xQ1dXV8vPz04cffqgRI0bI4aj7P0Vd223fvl0jR47U7NmzddFFF2n06NF68skn9cADD+jdd9/VM888o7ffflsOh0NJSUnq27fvb74uAJqJ6SG+rgBNabrL1xU0az5/+qk2kZGRGjlyZK2hpa62xjJ69Gjt3LlTt9xyiyZNmqR77rmnXtsdPXpUb731li677DK1b99ektSzZ0916NBBX331laSfeliuueaak+6rru0WL16sAQMGaMKECYqNjdXkyZM9PUNvvfWWbrzxRiUkJCg+Pl633nrrKZ8/AAAtQbMMNc3J3r17tX37doWEhGj69OnKzMzUM888o507d3qtV9uj5ZMnT/YMgv650aNHKzMzU8eOHdOmTZt06aWX1quWE223Z88eff311woNDVVoaKimTp2qXbt2SZL27dvn9Y6eM888s97nDgBAS+LzNwo3d6+//rreffddrVq1StJPg5mPB5Wff807KyurxratW7eudZ/XXHONJk6cqAEDBujSSy+t8f6dEznRdl26dNGIESP01FNPeeo6HrI6dOigvXv3evZxPOwAAGA19NScRGJiojZs2KDFixdrz549mj59ujp16qRBgwZp8+bNKiws1I8//ugJFPXRt29fuVwuLVy4sF63nk623Q033KC1a9dq69atkqRnn33W86HPkSNHatGiRdqwYYM+//xzvfjii/U+HgAALQk9NSfRt29fzZ8/Xw899JD27t2rAQMG6J133lG/fv00bNgw9e3bV507d9ajjz6qkSNH1nu/o0aN0qxZszR//vxTqqe27c4880y98soruueee/TDDz/o97//vRYvXixJuvrqq7Vp0yaNHDlS7dq108iRIz3hBwAAK2kWX+luCvX5SjdfpuZaAC0OTz+dXk7Dp59O5Svd3H4CAACWQKgBAACWQKgBAACWQKgBAACWQKgBAACWQKgBAACWQKgBAACWwMv3foVu933QZMfKSx3eZMcCAKAlo6fGgnJychQXF6ewsDAlJyfrNHm/IgDgNEeosRi3262kpCQNHDhQWVlZys3NVXp6uq/LAgCg0RFqLCYzM1Mul0szZ85UbGysUlJS9PLLL/u6LAAAGh2hxmKys7M1aNAgBQUFSZL69eun3NxcH1cFAEDjI9RYTFFRkWJiYjzzNptNdrtdhYWFPqwKAIDGR6ixGIfDIafT6bUsMDBQJSUlPqoIAICmQaixmPDwcBUUFHgtKy4uVkBAgI8qAgCgaRBqLCYuLk4bN270zOfl5cntdis8PNyHVQEA0PgINRaTkJAgl8uljIwMSVJqaqoSExNlt9t9XBkAAI2LNwr/Cs35Lb8Oh0NpaWkaO3askpOTVVVVpTVr1vi6LAAAGh2hxoJGjRqlrVu3KisrS/Hx8YqIiPB1SQAANDpCjUVFRkYqMjLS12UAANBkGFMDAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgUe6f43pIU14LNev2uzQoUM677zztGrVKnXr1q1hawIAoBmip8aCDh48qCuvvFJ5eXm+LgUAgCZDqLGgMWPGaMyYMb4uAwCAJkWosaC0tDRNmTLF12UAANCkCDUWdOaZZ/q6BAAAmhyhBgAAWAKhBgAAWAKhBgAAWILPQ819992npKQkz3xOTo7i4uIUFham5ORkGWPq1QYAAE5vPg01OTk5euGFFzRr1ixJktvtVlJSkgYOHKisrCzl5uYqPT39pG0AAAA+e6OwMUaTJk3S3XffrdjYWElSZmamXC6XZs6cqaCgIKWkpOj222/X+PHj62xrcr/yLb9NjZ4sAMDpxGc9NS+++KK+/fZbxcTE6P3331dFRYWys7M1aNAgBQUFSZL69eun3NxcSaqzrTZut1tFRUVeEwAAsC6fhJqjR4/qgQceUI8ePbR7927NnDlTCQkJKioqUkxMjGc9m80mu92uwsLCOttqM2PGDIWEhHimqKioRj8vAADgOz4JNcuWLdOxY8e0cuVKPfjgg/roo4905MgRzZs3T06n02vdwMBAlZSUyOFwnLCtNtOmTZPL5fJM+fn5jXY+AADA93wypmb37t36/e9/r/Dw8J+KcDjUr18/5eXlqaCgwGvd4uJiBQQEKDw8XDk5ObW21cbpdNYIQQAAwLp80lMTFRWl0tJSr2U7d+7U008/rY0bN3qW5eXlye12Kzw8XHFxcSdsaygMrOUaAABaLp+EmuHDh2vLli2aM2eOdu/ereeee07ffvutLrvsMrlcLmVkZEiSUlNTlZiYKLvdroSEhBO2/Vb+/v6SdMJbWaeT49fg+DUBAKCl8Mntp/DwcH344YeaOnWq7rnnHp1xxhl67bXX1L17d6WlpWns2LFKTk5WVVWV1qxZ81OhDscJ234ru92u0NBQHThwQJIUFBQkm83WIPtuKYwxKikp0YEDBxQaGtogYREAgKZkM83wfsOePXuUlZWl+Ph4RURE1LutLkVFRQoJCZHL5VJwcHCNdmOM9u/fryNHjvzW8lu00NBQnXHGGaddqANarOkhvq4ATamFvCetIZ3s9/fP+ezle3WJjIxUZGTkKbf9FjabTZ06dVKHDh1UUVHR4PtvCfz9/emhAQC0WM0y1PiS3W7nFzsAAC2Qzz9oCQAA0BAINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBJ8FmruvPNO2Ww2z9S9e3dJUk5OjuLi4hQWFqbk5GQZYzzb1NUGAABObz4LNV999ZU++OADFRYWqrCwUN98843cbreSkpI0cOBAZWVlKTc3V+np6ZJUZxsAAIBPQk1lZaVycnKUkJCg0NBQhYaGqm3btsrMzJTL5dLMmTMVGxurlJQUvfzyy5JUZxsAAIBPQs2mTZtkjFH//v3VqlUrDRs2TLt27VJ2drYGDRqkoKAgSVK/fv2Um5srSXW21cbtdquoqMhrAgAA1uWTULNlyxb17t1bixcvVm5urvz9/TVp0iQVFRUpJibGs57NZpPdbldhYWGdbbWZMWOGQkJCPFNUVFSjnxcAAPAdn4SaG2+8URs3blRcXJxiYmL073//Wx999JGqq6vldDq91g0MDFRJSYkcDscJ22ozbdo0uVwuz5Sfn99o5wMAAHzP4esCJCk0NFTV1dU644wzlJOT49VWXFysgIAAhYeHn7CtNk6ns0YIAgAA1uWTnpp77rlHS5Ys8cx/+eWX8vPzU9++fbVx40bP8ry8PLndboWHhysuLu6EbQAAAD4JNf3799c//vEPffrpp1q5cqXuvPNO3XLLLbrsssvkcrmUkZEhSUpNTVViYqLsdrsSEhJO2AYAAOCT20/jxo3Tli1bNHLkSLVt21ZXXXWVUlJS5HA4lJaWprFjxyo5OVlVVVVas2bNT4XW0QYAAGAzzfC1vHv27FFWVpbi4+MVERFR77a6FBUVKSQkRC6XS8HBwQ1dMgD4xvQQX1eApjTd5esKmtyp/P5uFgOFfykyMlKRkZGn3AYAAE5ffNASAABYAqEGAABYQrO8/QQAqJ9uZa/6ugQ0oTxfF9DM0VMDAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsgVADAAAsweehZtiwYUpPT5ck5eTkKC4uTmFhYUpOTpYxxrNeXW0AAAA+DTWLFi3Sf/7zH0mS2+1WUlKSBg4cqKysLOXm5nrCTl1tAAAAkg9DzeHDhzV16lT17NlTkpSZmSmXy6WZM2cqNjZWKSkpevnll0/aBgAAIEkOXx146tSpuuqqq1RaWipJys7O1qBBgxQUFCRJ6tevn3Jzc0/adiJut1tut9szX1RU1BinAQAAmgmf9NSsWrVKK1as0OOPP+5ZVlRUpJiYGM+8zWaT3W5XYWFhnW0nMmPGDIWEhHimqKioxjkZAADQLDR5qCkrK9OkSZM0e/ZsBQcHe5Y7HA45nU6vdQMDA1VSUlJn24lMmzZNLpfLM+Xn5zfsiQAAgGalyW8//etf/1JcXJyGDx/utTw8PFw5OTley4qLixUQEFBn24k4nc4aQQgAAFhXk4eaV199VQUFBQoNDZUklZSUaMmSJerWrZsqKio86+Xl5cntdis8PFxxcXF66aWXam0DAACQfHD7ae3atcrJydG3336rb7/9ViNGjNAjjzyiTz/9VC6XSxkZGZKk1NRUJSYmym63KyEh4YRtAAAAkg96arp06eI136ZNG7Vv317t27dXWlqaxo4dq+TkZFVVVWnNmjU/FelwnLANAABAkmymmb2ad8+ePcrKylJ8fLwiIiLq3XYyRUVFCgkJkcvl8hqgDAAtWbf7PvB1CWhCeanDT76SxZzK72+fvafmRCIjIxUZGXnKbQAA4PTm828/AQAANARCDQAAsIRTDjXl5eWaNGlSnes8+eST2r17968uCgAA4FSd8pgaf39/LViwQPn5+YqMjFTPnj0VHx+v888/Xw6HQx9//LEeeeQR/eEPf6jxpBMAAEBjOeVQY7PZ1K5dO02ZMkX79u3Tjh079MADD+j777/X9ddfr1deeUULFixQnz59GqNeAACAWtU71MyfP1+RkZFKSEhQq1atdPnll3vasrKy9Le//U1z5sxRfHy8Ro0a1Ri1AgAAnFC9x9R89dVXSk5OVlhYmH788Uf985//1NixYxUTE6MpU6bopptu0sGDBxUeHq7777+/MWsGAACood49Nf/+978lSTk5OcrIyNDnn3+ulStX6u9//7seffRRz3ppaWnq16+fbrjhBvXt27fhKwYAAKhFvXtqpk6dqvHjxyszM1OFhYXKyMjQuHHj1L17dyUlJemNN97QsWPH9H//93/6xz/+oT179jRm3QAAAF7qHWpSUlJ0ySWX6OjRo7Lb7Ro7dqz+8Ic/6JZbbtHGjRv1yiuvKDY2VgMGDNDEiRM1bNiwxqwbAADAS71vP40ePVoBAQEqKCjQ/v371atXL7355psaPHiwwsLC9N577+naa6/VRx99pP379+uMM85ozLoBAAC81Lun5rrrrtN1112nCy+8UNu2bVOrVq10zTXXaMiQITp06JA2bNigbdu26YknntDdd9/diCUDAADUVO9Qc8EFF+ipp55S27ZtNWrUKO3cuVOtWrXS5s2bJUnJycnq0qWLxowZo+3bt2vr1q2NVjQAAMAv1fv204oVK3TffffJZrPpu+++07///W8NGTJEGzduVFBQkNavX699+/ZJksaMGaMNGzaoR48ejVY4AADAz9U71Nx2222SpIqKCl1++eVq3bq13nvvPbVv315LliyRJHXq1EnGGE2cOFFt27ZtnIoBAABqccoftPT391fr1q0lSb1795afn58GDx7sac/IyNCIESMarkIAAIB6OOVQU5dDhw7p/vvv9wo5AAAATaHBQk1ZWZmuueYade7cWQ899FBD7RYAAKBeGiTU/PDDD0pISFBJSYk++eQTOZ3OhtgtAABAvf2mUHPkyBH94x//UP/+/ZWYmKi1a9cqJCSkoWoDAACot3o9/XTo0CHNnTtXHTt2lDFGhYWFys7O1sqVK3X11Vfryy+/VM+ePRu7VgAAgBOqV6gpKCjQsmXL5HA4ZLfbVVBQoF27diksLEytWrVq7BoBAABOql6hplevXsrKyvJa5na79dlnn+mVV17R+eefr9tuu02PPPKIgoKCGqVQAACAuvzqMTVOp1NDhw7V/Pnz9fXXX+vrr79WQkKCDh8+3JD1AQAA1EuDPP0UGxurTz75RGeddZYSEhJ09OjRhtgtAABAvTXYe2r8/Py0cOFCdejQQZMnT26o3QIAANRLg75R2M/PT3PmzNEXX3yhI0eONOSuAQAA6lTvD1rW11lnnaXs7GyeigIAAE2qQXtqjiPQAACAptYooQYAAKCpEWoAAIAlEGoAAIAlEGoAAIAlEGoAAIAlEGoAAIAlEGoAAIAlEGoAAIAlEGoAAIAlEGoAAIAl+DTUHDp0SBs2bNDBgwd9WQYAALAAn4Wa1157Td27d9ftt9+url276rXXXpMk5eTkKC4uTmFhYUpOTpYxxrNNXW0AAOD05pNQc+TIEd15551au3atvvnmG82dO1d///vf5Xa7lZSUpIEDByorK0u5ublKT0+XpDrbAAAAfBJqiouLNWvWLPXp00eSdM4556iwsFCZmZlyuVyaOXOmYmNjlZKSopdfflmS6mwDAABw+OKgUVFRuvHGGyVJFRUVeuqpp3T11VcrOztbgwYNUlBQkCSpX79+ys3NlaQ622rjdrvldrs980VFRY11OgAAoBnw6UDh7OxsdezYUR999JFmzZqloqIixcTEeNptNpvsdrsKCwvrbKvNjBkzFBIS4pmioqIa/XwAAIDv+DTU9OvXTytWrFDv3r01fvx4ORwOOZ1Or3UCAwNVUlJSZ1ttpk2bJpfL5Zny8/Mb7TwAAIDv+TTU2Gw2DRgwQOnp6XrnnXcUHh6ugoICr3WKi4sVEBBQZ1ttnE6ngoODvSYAAGBdPgk1K1euVHJysmfe4fhpaE+vXr20ceNGz/K8vDy53W6Fh4crLi7uhG0AAAA+CTW9evXS3LlzlZaWpvz8fN1333267LLLNHz4cLlcLmVkZEiSUlNTlZiYKLvdroSEhBO2AQAA+CTUdO7cWUuXLtWsWbPUu3dvlZSUaMGCBXI4HEpLS9PkyZPVsWNHvfHGG0pNTZWkOtsAAABsphm+lnfPnj3KyspSfHy8IiIi6t1Wl6KiIoWEhMjlcjG+BoBldLvvA1+XgCaUlzrc1yU0uVP5/e2T99ScTGRkpCIjI0+5DQAAnL74SjcAALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEn4Wad955R2eeeaYcDod+//vfa8uWLZKknJwcxcXFKSwsTMnJyTLGeLapqw0AAJzefBJqtm/frvHjxys1NVV79uxRdHS0br31VrndbiUlJWngwIHKyspSbm6u0tPTJanONgAAAJvxQXfH+++/r927d2vy5MmSpFWrVmnYsGF6/fXXNWHCBO3evVtBQUHKzs7W7bffrnXr1untt98+YVt9FBUVKSQkRC6XS8HBwY15es3P9BBfV4CmNN3l6wrQhLrd94GvS0ATyksd7usSmtyp/P52NFFNXq688kqv+f/973/q3r27srOzNWjQIAUFBUmS+vXrp9zcXEmqs602brdbbrfbM19UVNTQpwEAAJoRnw8ULi8v11NPPaW//OUvKioqUkxMjKfNZrPJbrersLCwzrbazJgxQyEhIZ4pKiqq0c8FAAD4js9DzQMPPKA2bdpo4sSJcjgccjqdXu2BgYEqKSmps60206ZNk8vl8kz5+fmNdg4AAMD3fHL76biPP/5Yc+bM0caNG+Xv76/w8HDl5OR4rVNcXKyAgIA622rjdDprhCAAAGBdPuup+eGHH3TjjTdq9uzZOvvssyVJcXFx2rhx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navCwkIdPHhQmZmZioiI0HfffaeDBw96TYcOHdLRo0drhJ3jKioqeBs10EIQagA0mPXr1+vMM89Up06dPMtuv/12hYSEaO3aterfv7+CgoIUFxennJwczzrl5eW6+uqr1aZNG11xxRVeHy+Uar/9tHr1anXr1k3vvvuuoqOjFRYWpueee65GTfv27dP1118vPz8/DRkyRN26dfNMnTp1qnE7qry83OtWVEVFhdq0aVNjv1VVVSovLz+1CwSgURFqADSYPXv21OjxuPfeexUfH6/Ro0fr2muv1Q8//KD4+HglJyd71vnss880YMAAbdq0SX5+frrjjjvqdbxDhw4pNTVVH3zwgR5++GElJyertLTU075r1y5dcskl2rFjh9atW6e8vDyvaenSpXI6nV77vOCCC9SuXTvPGJrJkyfrP//5j4KCgtS6dWvP8vDwcP3pT3/6DVcLQENjTA2ABlNRUeEZw/JL2dnZCgkJ0aZNm1RcXKzvv//e09apUyf94x//kJ+fn6ZPn67BgwerqqrqhPs67ujRo5o9e7b69Omjs846S1OmTNGBAwcUHR2td999V7fddpuSk5OVnJysa6+9tkaAKSoqqnGML7/80mt+3LhxGjx4sH788Uc5HA498MADp3JJADQhemoANJjQ0NAaA3rj4+M1d+5czZw5U5GRkbr99tvlcrm8vrQcHR0tP7+f/jrq2rWrKisrdfDgwZMeLywsTOecc44keca9GGN04MABPf3003rppZd09913S5KWLl2qdevWeU0vvPBCnfsvLy/X8uXLdemll9b7GgDwHXpqADSYAQMG6Pvvv1dRUZGCg4Ml/TR4uGvXrrr33nu1bds2dezYUcuXL9dXX33l2W737t0yxshms2nPnj2y2+1q167dSY93/Bi/1KFDB8/TSpWVlZKkIUOG1PjYodvtVkhIyAn3P3fuXPXs2VPdu3c/aS0AfI+eGgANJj4+Xr1799bEiRP1ww8/6NFHH1VFRYUnWLhcLq1fv1733HOP12Dc3bt368knn1ReXp4eeeQRXXnllQ3+teUTjampa/377rtPTzzxRK3t//vf/7RgwYIGrRHAb0OoAdBgbDab3nvvPRUVFal379566623lJmZqeHDh2vEiBE699xzNXnyZN12223au3evfvzxR0lSXFyc1q1bp3POOUclJSWaPXt2g9X089tcP/fNN99ozZo18vf3r9G2ePFiXX755XrkkUd0wQUXSJIcDod27Njh2d9HH32kxx57rMHqBPDb2czP/7kEABbjcrkUGhqqHTt2qFu3bp7lU6dO1aJFi/TQQw/pz3/+s2fd66+/XuvXr9cLL7ygm266ybP+l19+qeHDh+vw4cOSJLvdrqeffrreT2oBaHyEGgCnperqas/g5J9bunSpBg0apKioKB9UBeC3INQAAABLYEwNAACwBEINAACwBEINAACwBEINAACwBEINAACwBEINAACwBEINAACwBEINAACwBEINAACwhP8PLJPb23VuzdIAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#cabin的值计数太分散了，绝大多数Cabin值只出现一次。感觉上作为类目，加入特征未必会有效\n",
    "#那我们一起看看这个值的有无，对于survival的分布状况，影响如何吧\n",
    "fig = plt.figure()\n",
    "fig.set(alpha=0.2)  # 设定图表颜色alpha参数\n",
    "\n",
    "Survived_cabin = data_train.Survived[pd.notnull(data_train.Cabin)].value_counts()\n",
    "Survived_nocabin = data_train.Survived[pd.isnull(data_train.Cabin)].value_counts()\n",
    "df=pd.DataFrame({u'有':Survived_cabin, u'无':Survived_nocabin}).transpose()\n",
    "df.plot(kind='bar', stacked=True)\n",
    "plt.title(u\"按Cabin有无看获救情况\")\n",
    "plt.xlabel(u\"Cabin有无\") \n",
    "plt.ylabel(u\"人数\")\n",
    "plt.show()\n",
    "\n",
    "#似乎有cabin记录的乘客survival比例稍高，那先试试把这个值分为两类，有cabin值/无cabin值，一会儿加到类别特征好了"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "fb896bb3-2817-4354-8ffc-d4f8c58f8af2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAHFCAYAAAAKbwgcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/sElEQVR4nO3de1RVdf7/8dfhHDiIyk3RFBEJTScvaUajZGTfqJwMtbIymyydUme62OTQZFOTNYV0M6v5pVIpoWZp2V2ayltesqILDmKTmijeEhUPKHC4fX5/tDyrE4hYwIHt87HWXsu9P/vy3ruQl5/92XvbjDFGAAAALZyfrwsAAABoCIQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQawEfWr1+vAwcO1FheUlKip556SlZ82fenn36qbdu2+boMj/LycuXl5WnFihV6/vnntXDhwjrXf+WVV5Senu6ZP3z4sP74xz/q+++/r9fxHnjgAWVnZ0uSKioqPMs//vhjffTRR3Vum5OTc8Jrt2/fPn3xxRd1bl9WVlavGoGWzMZnEgDfiIyM1P/7f/9Po0aN8lq+Y8cO/e53v9MLL7ygCRMm+Ka4RtKrVy/16dNHb7zxRr3W37dvn/bv3y+n0yk/v9r/DVZdXS23262IiAh16dLFq+3xxx/XZ599psrKSrndbpWWlqqkpEQul0uFhYU6cuSIAgICFBYWpvbt2ys8PFxvvPGGIiIiJEmlpaUyxigwMFB+fn66+eabZYxRRkaGJKmgoEAdOnTQV199pXPPPVfV1dUqKSlRUFBQrfUGBwfrtdde09q1a1VQUKCXXnpJkjR8+HDZ7Xa9++67J7wWV1xxhbp166YXXnhBbrdbRUVFnusyf/58PfHEE9qyZYukn8KazWZTWFiYJOmpp57Sa6+9pvXr18vpdOrAgQPq2LFjndf+2LFjCgoKqnMdoLlx+LoA4HTl7+8vh6Pmj2BMTIz+/ve/a+fOnbVuV1FRoQcffFDz5s1TWVmZRo8ereeee05t2rSp13G7deumO+64Q3/7299Ouq7NZtOqVas0dOjQeu37uOLiYm3bts0rjPz444/63//+p3Hjxum7776rsU15ebnsdrt69+7tWZaRkaEHH3xQTqdTdrtdlZWVOnbsmEJCQjzrGGNUWVmpKVOmKCUlxWufw4YNk81mU2hoqEJDQxUUFKSUlBR16dJFc+fOVWhoqFq1aiVjjCoqKmSMkdPp9Gz/2GOP6bHHHqtR64IFC7zmBw4c6DW/ZcsW9erVq8Z2DodDgYGBGjJkiEaMGKH7779fUVFRWr9+vebNm1fXJVXbtm0VGBgoSfrkk0909dVXe65veXm53G63J9S53W5deumlnpA0ZMgQ3X///frb3/6m559/3nOOy5cv14UXXuh1nEWLFmny5Mle1wFoMQyAJlNZWWnKyspMdXW1iY6ONu+8844pLS01X3zxhXE6nXVOL730kjHGmEmTJpk2bdqYefPmmffee8/ExMSYm2++ud41REdHmyeffLJe63755ZemqKjolM9z9erVJiAgwLRt29aEhISYkJAQ4+/vb/z8/Dzzv5zatGljBg4cWOd+3377bePn53dKtfTs2dP4+fl5rqMkExAQ4HVtAwICjM1mM1OnTvXa9ujRo+bw4cOmpKTElJaWmj/+8Y/m+uuvN6Wlpaa0tNTs2rXLSDIbNmwwpaWlpri42Bw8eNBUVlZ69vHmm2+a999/3yxfvtwEBwebxx9/3HzwwQfm4YcfNrm5uSYzM9M4HA6TnZ1ttm7darZu3Wo2b95sDh065FXLzTffbKZOnWq2bt1qqqurzY8//mgOHz5siouLzZw5c8yZZ55piouLjcvlMj/++KNxu91e26emphpJZvny5aaoqMhIMqtWrapxvebPn2/41YCWip4aoAl9+eWXGjx4sGw2m4wxGjlypK655ho9+OCDcrvdnnE0u3btUteuXT3b9e/fX/7+/tq6datefPFFPfXUUxo/frykn26RjBkzRo8++miN2y+/1Xnnnfertrvooovkdrs98wUFBerTp4+efvpp/fGPf/zV9VRWVtbau1WXnJwczzabN29Wnz59tH379lqvVVVVldd869atdeDAAXXt2lV2u12XXHKJevTo4ekxCQkJ0cKFC9WjRw8FBAQoMDCwRo/Z/fffL4fDIT8/Px07dkxpaWkKCgpSZWWl2rVrpw0bNqiyslLnnHOO13bz58/XLbfcomXLlunpp59Wjx495Ha7NWDAAGVmZur6669XYWGhAgICvHpqqqqqVFZWpk8++UQXXXSRZ39//etftWbNGkVHR8tms53SNQRaCgYKA03o/PPPV0VFhaqrqxUdHa333ntP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8GG5XC7POgUFBVq/fr0qKytVVVWliy++WP/617/0u9/9Tv/+97/1zjvv1FrHz9nt9noNHv252NjYWpc7HA7NmTNHS5cu9RrQfPz2U21Tfbz66qsqKyur85bJz2VlZemiiy7SM888o+XLl0v66baNw+Goddq+fXuNMBAeHq7//ve/uvDCC3XfffcpODhYO3fuVOvWreVwOPTmm28qIiLC6701AQEBnuu7Y8cOXX/99Z7xNu3atdPAgQP1xhtvKCMjQ/fee6969eql8847T0lJSYqMjPR6T09d/Pz8tGDBAgUGBnpNf/3rX2tdPzk5WWeccYZX+6effqr+/fvX63hAS0CoAZpQ586dtXnzZt1yyy01eieWLFkip9OppUuXyuVy6cMPP1ROTo6mTJniWef44OGfv3l23bp18vPz04ABA5STk6MNGzbo5Zdf1oMPPqjhw4drz549NepYv369589Hjx7V//73P3Xv3v2UzqWu3pW4uLgab0q++OKLT/jk08kC1c6dO3Xvvffqz3/+c50h6Ph+jDGaNWuW3G63srKydMEFF0jSSXtqfq66uloPPPCALr74Yj300EOaNGmS5yk06aenmt5//3299dZb+vjjj7Vq1aoa9SxYsEBff/21Pv/8c911112e5cOGDVNaWprnMe4//vGP+vLLL3XdddfVeR1+6aabbvL06h2fnnnmmRrrffLJJ1q4cKGeffZZzwDknJwcrVq1SldffXWt++azCmiRfHz7CzhtRUdHm/fee89r2YYNG8zw4cNN27ZtTfv27U1KSkqN7S699FITHBxs5s2bZ15//XUTERFhbrjhBmOMMbt27TI2m81MnDjRfPrpp+af//yn54Vzx8efREdHGz8/PzNt2jTzySefmFGjRpmgoCCzZ8+eGsdSHWNqfm7Hjh1GktmxY0eNffzwww+el74VFxfXOtnt9hOOqdm1a5fp2bOnOeuss8yxY8eMMabWMTUHDx40Xbt2NevXrzfGGON2u015ebkxxpiKigojyYSEhJh27drVOvn5+ZkFCxZ4HXvp0qUmKyvLGGNMQUGBkWTy8vKM2+02F154oRk3bpwxxpjHHnvMnHHGGSY3N9dr++rqauNyuTzz4eHhZvXq1V7rfPHFF6Zz584mNjbWBAcHe42H+rlfjqmZOnWqsdlsNcYG+fn5mYsuusiz3pEjR0y3bt1MUlKS17JzzjnHDBkyxLPsl2Nqrr32WjNhwoRaawGaK3pqAB+p7ZHZ/v37a9iwYTLGqF27dkpJSdFDDz2ko0ePetZZtmyZbrzxRk2dOlW33XabrrrqKs83hKKiojR37lx9+OGHGj58uD799FPNnj1bkrweNb7zzju1bt06XXnllcrPz9d//vMfde7cuVHO83jvSW23n7Zu3ap169apqqrK60mm49577z2df/75OnbsmDIzMz3fIjr+pNiiRYs8j3QvXLhQu3bt8oyLCQgIqHE7aenSpcrLy6t16tatW43jjx49WgMHDlRVVZX++c9/qnfv3urUqZMmTJigH374QTNnzpQk3XfffTr33HN18cUX69NPP/Vsb7PZFBwcrOeee0433XSTDh8+rA4dOkj66ZH1P//5z56nm7777jvdcsstSkxM1KRJk7zeh3P8OpqffarPGKNx48bV6HGaP3++13alpaUaNGiQnn32WUnSihUrdP755+vQoUNej5o7HA59//33nnfofPbZZ7X+NwGaNR+HKuC0s3btWnP//fcbu91uPv74Y/P999+b2bNnmzFjxpjg4GDTu3dvs3z5clNdXW3mzJlj2rZtazp16mTefvttX5f+q/z3v/894Sv577rrLtO2bVtz4403evW6FBUVmcsuu8xIMomJiWb//v1e21VXV5uRI0caPz8/r6eOrrzyylprOHbsWL2ewEpPT6+x7dSpU03Xrl1Nt27dTFZWlhk0aJAJDQ319OAcV1paaq644grTtm1b8/3333u1Pfroo6ZTp05mypQpnmXvvvuuCQ0NNXPnzvVad968eaZTp041en1GjRpl7rjjDq9r98unn7Zt22auv/76Ez7F9OCDDxpJZujQoWbXrl1ebV9//bXp3bu3ad++vQkODjaDBw+usQ7Q3BFqgCa2ZcsW06NHDzN58mRTVlZm8vPzTWxsrPnTn/5kPvnkkxrr79y504wYMcJkZ2f7oNrGVdcj2YsWLTIZGRkNcpzDhw8bSWbt2rUnXCc2NtbMmTOnxvIlS5aYRYsWmdLSUmOMMW+99ZbXI9s/V1lZab799ttTqqs2JSUlNZZdddVV5u677/bMT5o0qUao+eabb0y3bt3MokWLTni8zMzMetcHtDQ2Y37WnwkAANBCMaYGAABYAqEGAABYAqEGAABYAqEGAABYwmnzle7q6mrt3btXbdu2lc1m83U5AACgHowxKi4uVufOnev85pl0GoWavXv3KioqytdlAACAXyE/P19dunSpc53TJtS0bdtW0k8XJTg42MfVAACA+igqKlJUVJTn93hdTptQc/yWU3BwMKEGAIAWpj5DRxgoDAAALIFQAwAALIFQAwAALOG0GVNTH8YYVVZWqqqqytel+ITdbpfD4eCRdwBAi+STUJOenq7x48fXWD5//nydd955Gj9+vLZt26Zbb71VTzzxhOeXbE5Ozgnbfqvy8nLt27dPJSUlDbK/liooKEidOnVSQECAr0sBAOCU+OQr3eXl5V7h4ejRoxowYIDWrVunYcOG6fLLL1dycrLuuusujR49WuPHj5fb7VavXr1qbauPoqIihYSEyOVy1Xj6qbq6Wlu3bpXdbldERIQCAgJOu94KY4zKy8tVUFCgqqoq9ejR46QvOQIAoLHV9fv7l3wSan4pJSVFO3fu1B/+8AdNmDBBu3fvVlBQkLKzs3X77bdr3bp1evvtt0/YVh91XZSysjLt2LFD0dHRCgoKaoxTbDFKSkq0c+dOxcTEKDAw0NflAABOc6cSanw+pqasrEzPPvusPv/8c73yyisaNGiQJ1j069dPubm5kqTs7OwTttXG7XbL7XZ75ouKik5aCz0TXAMAQMvl899gr776qgYNGqRu3bqpqKhIMTExnjabzSa73a7CwsI622ozY8YMhYSEeCY+kQAAgLX5PNTMmTNHkydPliQ5HA45nU6v9sDAQJWUlNTZVptp06bJ5XJ5pvz8/MY5AQAA0Cz4NNRs27ZN27ZtU2JioiQpPDxcBQUFXusUFxcrICCgzrbaOJ1OzycRfuunET7//HMNHDhQbdu2VWJiovbs2fOr91Ufq1evVrdu3Rpl3+np6Ro6dGij7BsAAF/yaahZsmSJrrzySvn7+0uS4uLitHHjRk97Xl6e3G63wsPD62xrTCUlJRo5cqTuuOMO5ebmqm3btrrjjjsa9ZhDhgzRpk2bGvUYAABYjU9DzYcffqiLL77YM5+QkCCXy6WMjAxJUmpqqhITE2W32+tsa0xbtmxRYWGhxo8fr6ioKD300EON/ri3w+Hgo5sAAJwin4Wa0tJSff755xo8eLBnmcPhUFpamiZPnqyOHTvqjTfeUGpq6knbGlNUVJRsNpumT5+uiooK9e/fX8uWLatxGycvL88r7AwdOlTp6emaOXOmoqOj9e6770qSHnvsMd10002e9f773/+qXbt2qqys9Cyr7fbTybb78MMP1bdvX4WGhurWW2/1evLrX//6lyIiItS9e3d9/fXXDXJdAABobnz2SHerVq28fvEeN2rUKG3dulVZWVmKj49XREREvdoaS4cOHbRw4ULdeuutSk9P1yOPPKJx48bVa9u5c+eqXbt2evHFF3XuuedKkkaPHq0LL7xQ1dXV8vPz04cffqgRI0bI4aj7P0Vd223fvl0jR47U7NmzddFFF2n06NF68skn9cADD+jdd9/VM888o7ffflsOh0NJSUnq27fvb74uAJqJ6SG+rgBNabrL1xU0az5/+qk2kZGRGjlyZK2hpa62xjJ69Gjt3LlTt9xyiyZNmqR77rmnXtsdPXpUb731li677DK1b99ektSzZ0916NBBX331laSfeliuueaak+6rru0WL16sAQMGaMKECYqNjdXkyZM9PUNvvfWWbrzxRiUkJCg+Pl633nrrKZ8/AAAtQbMMNc3J3r17tX37doWEhGj69OnKzMzUM888o507d3qtV9uj5ZMnT/YMgv650aNHKzMzU8eOHdOmTZt06aWX1quWE223Z88eff311woNDVVoaKimTp2qXbt2SZL27dvn9Y6eM888s97nDgBAS+LzNwo3d6+//rreffddrVq1StJPg5mPB5Wff807KyurxratW7eudZ/XXHONJk6cqAEDBujSSy+t8f6dEznRdl26dNGIESP01FNPeeo6HrI6dOigvXv3evZxPOwAAGA19NScRGJiojZs2KDFixdrz549mj59ujp16qRBgwZp8+bNKiws1I8//ugJFPXRt29fuVwuLVy4sF63nk623Q033KC1a9dq69atkqRnn33W86HPkSNHatGiRdqwYYM+//xzvfjii/U+HgAALQk9NSfRt29fzZ8/Xw899JD27t2rAQMG6J133lG/fv00bNgw9e3bV507d9ajjz6qkSNH1nu/o0aN0qxZszR//vxTqqe27c4880y98soruueee/TDDz/o97//vRYvXixJuvrqq7Vp0yaNHDlS7dq108iRIz3hBwAAK2kWX+luCvX5SjdfpuZaAC0OTz+dXk7Dp59O5Svd3H4CAACWQKgBAACWQKgBAACWQKgBAACWQKgBAACWQKgBAACWQKgBAACWwMv3foVu933Q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cXF66aWXam0DAACQfHD7ae3atcrJydG3336rb7/9ViNGjNAjjzyiTz/9VC6XSxkZGZKk1NRUJSYmym63KyEh4YRtAAAAkg96arp06eI136ZNG7Vv317t27dXWlqaxo4dq+TkZFVVVWnNmjU/FelwnLANAABAkmymmb2ad8+ePcrKylJ8fLwiIiLq3XYyRUVFCgkJkcvl8hqgDAAtWbf7PvB1CWhCeanDT76SxZzK72+fvafmRCIjIxUZGXnKbQAA4PTm828/AQAANARCDQAAsIRTDjXl5eWaNGlSnes8+eST2r17968uCgAA4FSd8pgaf39/LViwQPn5+YqMjFTPnj0VHx+v888/Xw6HQx9//LEeeeQR/eEPf6jxpBMAAEBjOeVQY7PZ1K5dO02ZMkX79u3Tjh079MADD+j777/X9ddfr1deeUULFixQnz59GqNeAACAWtU71MyfP1+RkZFKSEhQq1atdPnll3vasrKy9Le//U1z5sxRfHy8Ro0a1Ri1AgAAnFC9x9R89dVXSk5OVlhYmH788Uf985//1NixYxUTE6MpU6bopptu0sGDBxUeHq7777+/MWsGAACood49Nf/+978lSTk5OcrIyNDnn3+ulStX6u9//7seffRRz3ppaWnq16+fbrjhBvXt27fhKwYAAKhFvXtqpk6dqvHjxyszM1OFhYXKyMjQuHHj1L17dyUlJemNN97QsWPH9H//93/6xz/+oT179jRm3QAAAF7qHWpSUlJ0ySWX6OjRo7Lb7Ro7dqz+8Ic/6JZbbtHGjRv1yiuvKDY2VgMGDNDEiRM1bNiwxqwbAADAS71vP40ePVoBAQEqKCjQ/v371atXL7355psaPHiwwsLC9N577+naa6/VRx99pP379+uMM85ozLoBAAC81Lun5rrrrtN1112nCy+8UNu2bVOrVq10zTXXaMiQITp06JA2bNigbdu26YknntDdd9/diCUDAADUVO9Qc8EFF+ipp55S27ZtNWrUKO3cuVOtWrXS5s2bJUnJycnq0qWLxowZo+3bt2vr1q2NVjQAAMAv1fv204oVK3TffffJZrPpu+++07///W8NGTJEGzduVFBQkNavX699+/ZJksaMGaMNGzaoR48ejVY4AADAz9U71Nx2222SpIqKCl1++eVq3bq13nvvPbVv315LliyRJHXq1EnGGE2cOFFt27ZtnIoBAABqccoftPT391fr1q0lSb1795afn58GDx7sac/IyNCIESMarkIAAIB6OOVQU5dDhw7p/vvv9wo5AAAATaHBQk1ZWZmuueYade7cWQ899FBD7RYAAKBeGiTU/PDDD0pISFBJSYk++eQTOZ3OhtgtAABAvf2mUHPkyBH94x//UP/+/ZWYmKi1a9cqJCSkoWoDAACot3o9/XTo0CHNnTtXHTt2lDFGhYWFys7O1sqVK3X11Vfryy+/VM+ePRu7VgAAgBOqV6gpKCjQsmXL5HA4ZLfbVVBQoF27diksLEytWrVq7BoBAABOql6hplevXsrKyvJa5na79dlnn+mVV17R+eefr9tuu02PPPKIgoKCGqVQAACAuvzqMTVOp1NDhw7V/Pnz9fXXX+vrr79WQkKCDh8+3JD1AQAA1EuDPP0UGxurTz75RGeddZYSEhJ09OjRhtgtAABAvTXYe2r8/Py0cOFCdejQQZMnT26o3QIAANRLg75R2M/PT3PmzNEXX3yhI0eONOSuAQAA6lTvD1rW11lnnaXs7GyeigIAAE2qQXtqjiPQAACAptYooQYAAKCpEWoAAIAlEGoAAIAlEGoAAIAlEGoAAIAlEGoAAIAlEGoAAIAlEGoAAIAlEGoAAIAlEGoAAIAl+DTUHDp0SBs2bNDBgwd9WQYAALAAn4Wa1157Td27d9ftt9+url276rXXXpMk5eTkKC4uTmFhYUpOTpYxxrNNXW0AAOD05pNQc+TIEd15551au3atvvnmG82dO1d///vf5Xa7lZSUpIEDByorK0u5ublKT0+XpDrbAAAAfBJqiouLNWvWLPXp00eSdM4556iwsFCZmZlyuVyaOXOmYmNjlZKSopdfflmS6mwDAABw+OKgUVFRuvHGGyVJFRUVeuqpp3T11VcrOztbgwYNUlBQkCSpX79+ys3NlaQ622rjdrvldrs980VFRY11OgAAoBnw6UDh7OxsdezYUR999JFmzZqloqIixcTEeNptNpvsdrsKCwvrbKvNjBkzFBIS4pmioqIa/XwAAIDv+DTU9OvXTytWrFDv3r01fvx4ORwOOZ1Or3UCAwNVUlJSZ1ttpk2bJpfL5Zny8/Mb7TwAAIDv+TTU2Gw2DRgwQOnp6XrnnXcUHh6ugoICr3WKi4sVEBBQZ1ttnE6ngoODvSYAAGBdPgk1K1euVHJysmfe4fhpaE+vXr20ceNGz/K8vDy53W6Fh4crLi7uhG0AAAA+CTW9evXS3LlzlZaWpvz8fN1333267LLLNHz4cLlcLmVkZEiSUlNTlZiYKLvdroSEhBO2AQAA+CTUdO7cWUuXLtWsWbPUu3dvlZSUaMGCBXI4HEpLS9PkyZPVsWNHvfHGG0pNTZWkOtsAAABsphm+lnfPnj3KyspSfHy8IiIi6t1Wl6KiIoWEhMjlcjG+BoBldLvvA1+XgCaUlzrc1yU0uVP5/e2T99ScTGRkpCIjI0+5DQAAnL74SjcAALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEn4Wad955R2eeeaYcDod+//vfa8uWLZKknJwcxcXFKSwsTMnJyTLGeLapqw0AAJzefBJqtm/frvHjxys1NVV79uxRdHS0br31VrndbiUlJWngwIHKyspSbm6u0tPTJanONgAAAJvxQXfH+++/r927d2vy5MmSpFWrVmnYsGF6/fXXNWHCBO3evVtBQUHKzs7W7bffrnXr1untt98+YVt9FBUVKSQkRC6XS8HBwY15es3P9BBfV4CmNN3l6wrQhLrd94GvS0ATyksd7usSmtyp/P52NFFNXq688kqv+f/973/q3r27srOzNWjQIAUFBUmS+vXrp9zcXEmqs602brdbbrfbM19UVNTQpwEAAJoRnw8ULi8v11NPPaW//OUvKioqUkxMjKfNZrPJbrersLCwzrbazJgxQyEhIZ4pKiqq0c8FAAD4js9DzQMPPKA2bdpo4sSJcjgccjqdXu2BgYEqKSmps60206ZNk8vl8kz5+fmNdg4AAMD3fHL76biPP/5Yc+bM0caNG+Xv76/w8HDl5OR4rVNcXKyAgIA622rjdDprhCAAAGBdPuup+eGHH3TjjTdq9uzZOvvssyVJcXFx2rhxo2edvLw8ud1uhYeH19kGAADgk1BTWlqqK6+8UqNGjdLIkSN19OhRHT16VBdeeKFcLpcyMjIkSampqUpMTJTdbldCQsIJ2wAAAHxy++k///mPtmzZoi1btujFF1/0LN+xY4fS0tI0duxYJScnq6qqSmvWrPmpUIfjhG0AAAA+CTWjRo064duAu3Xrpq1btyorK0vx8fGKiIjw2u5EbQAA4PTm04HCJxIZGanIyMhTbgMAAKcvnz/SDQAA0BAINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBIINQAAwBJ8GmoOHTqkmJgY5eXleZbl5OQoLi5OYWFhSk5OljGmXm0AAOD05rNQc/DgQV155ZVegcbtdispKUkDBw5UVlaWcnNzlZ6eftI2AAAAn4WaMWPGaMyYMV7LMjMz5XK5NHPmTMXGxiolJUUvv/zySdsAAAB8FmrS0tI0ZcoUr2XZ2dkaNGiQgoKCJEn9+vVTbm7uSdtq43a7VVRU5DUBAADr8lmoOfPMM2ssKyoqUkxMjGfeZrPJbrersLCwzrbazJgxQyEhIZ4pKiqq4U8CAAA0G83q6SeHwyGn0+m1LDAwUCUlJXW21WbatGlyuVyeKT8/v9HqBgAAvufwdQE/Fx4erpycHK9lxcXFCggIqLOtNk6ns0YIAgAA1tWsemri4uK0ceNGz3xeXp7cbrfCw8PrbAMAAGhWoSYhIUEul0sZGRmSpNTUVCUmJsput9fZBgAA0KxuPzkcDqWlpWns2LFKTk5WVVWV1qxZc9I2AAAAn4eaX74VeNSoUdq6dauysrIUHx+viIiIerUBAIDTm89DTW0iIyMVGRl5ym0AAOD01azG1AAAAPxahBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJzfLle2hY3cpe9XUJaEJ5vi4AAHyEnhoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJhBoAAGAJLS7U5OTkKC4uTmFhYUpOTpYxxtclAQCAZqBFhRq3262kpCQNHDhQWVlZys3NVXp6uq/LAgAAzUCLCjWZmZlyuVyaOXOmYmNjlZKSopdfftnXZQEAgGbA4esCTkV2drYGDRqkoKAgSVK/fv2Um5tb67put1tut9sz73K5JElFRUWNX2gzU+0u8XUJaEKn4//jpzN+vk8vp+PP9/Fzrs9wkxYVaoqKihQTE+OZt9lsstvtKiwsVFhYmNe6M2bM0MMPP1xjH1FRUY1eJ+BLIbN8XQGAxnI6/3wXFxcrJCSkznVaVKhxOBxyOp1eywIDA1VSUlIj1EybNk333HOPZ766ulqHDx9Wu3btZLPZmqRe+E5RUZGioqKUn5+v4OBgX5cDoAHx8316McaouLhYnTt3Pum6LSrUhIeHKycnx2tZcXGxAgICaqzrdDprBKDQ0NDGLA/NUHBwMH/pARbFz/fp42Q9NMe1qIHCcXFx2rhxo2c+Ly9Pbrdb4eHhPqwKAAA0By0q1CQkJMjlcikjI0OSlJqaqsTERNntdh9XBgAAfK1F3X5yOBxKS0vT2LFjlZycrKqqKq1Zs8bXZaEZcjqdeuihh2rcggTQ8vHzjROxmRb4St49e/YoKytL8fHxioiI8HU5AACgGWiRoQYAAOCXWtSYGgAAgBMh1AAAAEsg1AAAAEsg1MASCgoKfF0CAB+prq6u13eBYH2EGrR4paWlio2N9XUZAJpAeXm5hg4d6rVs9uzZCg4O1rRp03xTFJoNnn5Ci2eMUYcOHVRQUKDo6GgFBgbWeCGjv7+/br/9dk2cONFHVQL4NcrLy5WSkqLp06dL+qlXpn379jp8+LBnnUOHDmnDhg0aPXq03G63jypFc0BPDVo8m83m+UhpRUWF5s2bJ39/f7344os6cuSIXnzxRV133XWevxQBtCzPP/+8589+fn5yOLzfG9uuXTslJSWpurq6qUtDM9Oi3igMnExgYKAuuOAChYSE6IILLpDT6dQFF1yg1q1bq7Cw0NflAThFAQEB8vM7+b+/KyoqPP+4wemLUIPTQv/+/dW/f39flwHgV/hlWCkuLq5xK3nnzp2KjIxsyrLQDBFq0KLt3LlTUVFRvi4DQBPy9/fXkCFDvJ54uuiiizRkyBAfVoXmgFCDFm3MmDHatm2b3G639u7d6+tyADSCw4cPKyYmRgEBAWrTpo0qKiq0ZcsWXXbZZRo6dCi3neBBqEGLtmLFCq1YsULXXHONzj//fPn5+WnXrl1yu93atWuXqqqqlJ+f7/kXXdeuXX1cMYBTFRwcrDfffFMVFRUqLy/X8OHDFRAQoLvvvlsul0tPPvmkrr32Wl+XiWaAR7phCREREcrMzNR1112nnTt31voiLpvNpqqqKh9UB+C36NChgw4cOFDr/HvvvacJEyboxhtv1KxZs3xUIZoLHumGJdhsNp133nlav369evXqpaeeekoVFRWeqaysjKefgBaooqKiznfPJCUlad26dVq8eLGefvrpJqwMzRG3n9DiVVZWqrKyUpLUqVMnZWZm6vzzz1evXr10xRVXSJLsdrsCAgJ8WSaAX6G6ulpJSUley37Z49qzZ08tWrRISUlJuuKKK/S73/2uKUtEM0JPDVq86upqXXfddZ75rl27Ki0tTU8++aQPqwLQEJxOpxYuXOiZr6ys1MUXX1xjvcTERF177bXKz89vyvLQzDCmBpZVUFCgiIgIX5cBoIlUVlbWeNswTi+EGgAAYAncfgIAAJZAqAEAAJZAqAEAAJZAqAFwWjh27JgGDRqkHTt2nHTd0tJSVVRU1NpmjFFZWdkJ2wH4DqEGQIM6cuSIRo8erdatW+vcc89VVlZWneunp6dr6NChda6Tl5d3yt/3cbvdXsFj5cqV2rp1a41PZVRXV6ukpMTrLdSXXnqp2rdvr/bt2ys4OFj+/v6e+YiICJ1xxhl65ZVXTqkeAI2PZ98ANKjx48errKxM3377rT7++GONGDFC27dvV6tWrX71Prt27XrKb4S+6667tGTJEtntdkmSy+WS0+lUx44dvdYzxsjtdmv79u2etnXr1nna33zzTT333HNas2bNr64fQNOgpwZAg9mxY4feeecdzZs3Tz169NBf/vIX+fv7a+XKlb9pv35+fgoNDT2lbebOnavCwkIdPHhQmZmZioiI0HfffaeDBw96TYcOHdLRo0drhJ3jKioqeBs10EIQagA0mPXr1+vMM89Up06dPMtuv/12hYSEaO3aterfv7+CgoIUFxennJwczzrl5eW6+uqr1aZNG11xxRVeHy+Uar/9tHr1anXr1k3vvvuuoqOjFRYWpueee65GTfv27dP1118vPz8/DRkyRN26dfNMnTp1qnE7qry83OtWVEVFhdq0aVNjv1VVVSovLz+1CwSgURFqADSYPXv21OjxuPfeexUfH6/Ro0fr2muv1Q8//KD4+HglJyd71vnss880YMAAbdq0SX5+frrjjjvqdbxDhw4pNTVVH3zwgR5++GElJyertLTU075r1y5dcskl2rFjh9atW6e8vDyvaenSpXI6nV77vOCCC9SuXTvPGJrJkyfrP//5j4KCgtS6dWvP8vDwcP3pT3/6DVcLQENjTA2ABlNRUeEZw/JL2dnZCgkJ0aZNm1RcXKzvv//e09apUyf94x//kJ+fn6ZPn67BgwerqqrqhPs67ujRo5o9e7b69Omjs846S1OmTNGBAwcUHR2td999V7fddpuSk5OVnJysa6+9tkaAKSoqqnGML7/80mt+3LhxGjx4sH788Uc5HA498MADp3JJADQhemoANJjQ0NAaA3rj4+M1d+5czZw5U5GRkbr99tvlcrm8vrQcHR0tP7+f/jrq2rWrKisrdfDgwZMeLywsTOecc44keca9GGN04MABPf3003rppZd09913S5KWLl2qdevWeU0vvPBCnfsvLy/X8uXLdemll9b7GgDwHXpqADSYAQMG6Pvvv1dRUZGCg4Ml/TR4uGvXrrr33nu1bds2dezYUcuXL9dXX33l2W737t0yxshms2nPnj2y2+1q167dSY93/Bi/1KFDB8/TSpWVlZKkIUOG1PjYodvtVkhIyAn3P3fuXPXs2VPdu3c/aS0AfI+eGgANJj4+Xr1799bEiRP1ww8/6NFHH1VFRYUnWLhcLq1fv1733HOP12Dc3bt368knn1ReXp4eeeQRXXnllQ3+teUTjampa/377rtPTzzxRK3t//vf/7RgwYIGrRHAb0OoAdBgbDab3nvvPRUVFal379566623lJmZqeHDh2vEiBE699xzNXnyZN12223au3evfvzxR0lSXFyc1q1bp3POOUclJSWaPXt2g9X089tcP/fNN99ozZo18vf3r9G2ePFiXX755XrkkUd0wQUXSJIcDod27Njh2d9HH32kxx57rMHqBPDb2czP/7kEABbjcrkUGhqqHTt2qFu3bp7lU6dO1aJFi/TQQw/pz3/+s2fd66+/XuvXr9cLL7ygm266ybP+l19+qeHDh+vw4cOSJLvdrqeffrreT2oBaHyEGgCnperqas/g5J9bunSpBg0apKioKB9UBeC3INQAAABLYEwNAACwBEINAACwBEINAACwBEINAACwBEINAACwBEINAACwBEINAACwBEINAACwBEINAACwhP8PLJPb23VuzdIAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#cabin的值计数太分散了，绝大多数Cabin值只出现一次。感觉上作为类目，加入特征未必会有效\n",
    "#那我们一起看看这个值的有无，对于survival的分布状况，影响如何吧\n",
    "fig = plt.figure()\n",
    "fig.set(alpha=0.2)  # 设定图表颜色alpha参数\n",
    "\n",
    "Survived_cabin = data_train.Survived[pd.notnull(data_train.Cabin)].value_counts()\n",
    "Survived_nocabin = data_train.Survived[pd.isnull(data_train.Cabin)].value_counts()\n",
    "df=pd.DataFrame({u'有':Survived_cabin, u'无':Survived_nocabin}).transpose()\n",
    "df.plot(kind='bar', stacked=True)\n",
    "plt.title(u\"按Cabin有无看获救情况\")\n",
    "plt.xlabel(u\"Cabin有无\") \n",
    "plt.ylabel(u\"人数\")\n",
    "plt.show()\n",
    "\n",
    "#似乎有cabin记录的乘客survival比例稍高，那先试试把这个值分为两类，有cabin值/无cabin值，一会儿加到类别特征好了"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "7e0cb356-e94c-4c41-b3a8-82ea787184c8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SibSp</th>\n",
       "      <th>Survived</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">0</th>\n",
       "      <th>0</th>\n",
       "      <td>398</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>210</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">1</th>\n",
       "      <th>0</th>\n",
       "      <td>97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>112</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">2</th>\n",
       "      <th>0</th>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">3</th>\n",
       "      <th>0</th>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">4</th>\n",
       "      <th>0</th>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <th>0</th>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <th>0</th>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                PassengerId\n",
       "SibSp Survived             \n",
       "0     0                 398\n",
       "      1                 210\n",
       "1     0                  97\n",
       "      1                 112\n",
       "2     0                  15\n",
       "      1                  13\n",
       "3     0                  12\n",
       "      1                   4\n",
       "4     0                  15\n",
       "      1                   3\n",
       "5     0                   5\n",
       "8     0                   7"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 家族\n",
    "g = data_train.groupby(['SibSp','Survived'])\n",
    "df = pd.DataFrame(g.count()['PassengerId'])\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "16afd5e5-e0a1-43fd-bc34-b42c365c0fc2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Parch</th>\n",
       "      <th>Survived</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">0</th>\n",
       "      <th>0</th>\n",
       "      <td>445</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>233</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">1</th>\n",
       "      <th>0</th>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">2</th>\n",
       "      <th>0</th>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">3</th>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <th>0</th>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">5</th>\n",
       "      <th>0</th>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                PassengerId\n",
       "Parch Survived             \n",
       "0     0                 445\n",
       "      1                 233\n",
       "1     0                  53\n",
       "      1                  65\n",
       "2     0                  40\n",
       "      1                  40\n",
       "3     0                   2\n",
       "      1                   3\n",
       "4     0                   4\n",
       "5     0                   4\n",
       "      1                   1\n",
       "6     0                   1"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "g = data_train.groupby(['Parch','Survived'])\n",
    "df = pd.DataFrame(g.count()['PassengerId'])\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "36c2c5eb-3a7a-4742-ab89-92b517bf29b4",
   "metadata": {},
   "source": [
    "# 缺失值处理\n",
    "font color=red>先从最突出的数据属性开始吧，对，Cabin和Age，有丢失数据实在是对下一步工作影响太大。<font><br>\r\n",
    "\r\n",
    "<font color=red>先说Cabin，暂时我们就按照刚才说的，按Cabin有无数据，将这个属性处理成Yes和No两种类型吧。<font><br>\r\n",
    "\r\n",
    "<font color=red>再说Age：<font><br>\r\n",
    "\r\n",
    "<font color=red>通常遇到缺值的情况，我们会有几种常见的处理方式<font><br>\r\n",
    "\r\n",
    "1. <font color=red>如果缺值的样本占总数比例极高，我们可能就直接舍弃了，作为特征加入的话，可能反倒带入noise，影响最后的结果了<font><br>\r\n",
    "2. <font color=red>如果缺值的样本适中，而该属性非连续值特征属性(比如说类目属性)，那就把NaN作为一个新类别，加到类别特征中<font><br>\r\n",
    "3. <font color=red>如果缺值的样本适中，而该属性为连续值特征属性，有时候我们会考虑给定一个step(比如这里的age，我们可以考虑每隔2/3岁为一个步长)，然后把它离散化，之后把NaN作为一个type加到属性类目中。<font><br>\r\n",
    "4. <font color=red>有些情况下，缺失的值个数并不是特别多，那我们也可以试着根据已有的值，拟合一下数据，补充上。<font><br>\r\n",
    "<font color=red>本例中，后两种处理方式应该都是可行的，我们先试试拟合补全吧(虽然说没有特别多的背景可供我们拟合，这不一定是一个多么好的选择)<font><br>\r\n",
    "\r\n",
    "<font color=red>我们这里用scikit-learn中的RandomForest来拟合一下缺失的年龄数据<font><br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "8d5beed5-da9c-4f68-9d9b-8c47ca6ecfe5",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import RandomForestRegressor\n",
    "def set_missing_age(df):\n",
    "    age_df = df[['Age','Fare','Parch','Sibsp','Pclass']]\n",
    "    know_age = age_df[age_df.Age.notnull()].as_matrix()\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9cf0d836-5768-4d47-8c2e-6e0ca0ccb35e",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:base] *",
   "language": "python",
   "name": "conda-base-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
